regex - 检查目录是否存在递归地反转路径

标签 regex bash sed awk

我有点糊涂了!我不知道如何提出这个问题。

可能有一个例子。

我正在编写一个 bash 脚本来检查当前目录中是否有名为“FNS”的特定文件夹。为了检查文件是否存在,我这样做了。

        FOLDER=FNS
        if [ -f $FOLDER ];
        then
        echo "File $FOLDER exists"
        else
        # do the thing
        fi

如果文件不存在就会出现问题!我希望脚本记下当前路径并移回目录 [我的意思是 cd .. 在命令行中,我不确定我在这里使用的词汇是否正确]并检查文件是否存在,如果不存在,再次后退一步,直到出现它所在的目录[肯定存在]。找到后将路径存储在变量中。 当前的执行目录不应更改。我尝试将 pwd 传递给变量并剪切到最后一个斜杠和其他一些东西但没有成功!

希望我能在这方面有所作为。 像往常一样,欢迎提出建议、算法和解决方法:)

最佳答案

试试这个,用括号启动一个子 shell,这样 cd 命令就不会改变当前 shell 的当前目录

(while [ ! -d "$FOLDER" ];do cd ..;done;pwd)

关于regex - 检查目录是否存在递归地反转路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352973/

相关文章:

json - 使用 SED 命令检索 JSON 对象键值

java - Java中括号内的字符串分割

regex - 修改 `sed` 以从字符串中删除确切的标签

android - 简单字符串比较在 bash 脚本中不起作用

regex - 如何从 linux 中的文件的每一行中删除与模式匹配的重复单词

linux - 如何在mailx命令中添加收件人姓名

java - 如何使用正则表达式查找字符串中子字符串的不同出现次数?

java - 用于提取有效 Http 或 Https 的正则表达式

bash - 文本文件中一行的非重复条目

bash - 通过 “docker exec”执行bash脚本时,Docker在主机上查找脚本,但不在容器中查找脚本