如何检查文件是否在当前目录或其子目录中?

如何检查文件是否在当前目录或其子目录中?

我使用 find 在目录或其子目录中搜索文件。 find . -iname '*.csv',它给了我以下输出

./2012/t1.csv
./2012/t2.csv
./2013/t1.csv

现在,我想在脚本中检查文件是t1.csv在当前文件夹中还是在某个子目录中。如果在子目录中,我的脚本应该进入该目录。我该怎么做?

答案1

要仅检查t1.csv,您可以使用:

find . -name 't1.csv' 

现在,要进入t1.csv找到文件的第一个目录,您可以使用:

cd $(dirname $(find . -name 't1.csv' 2>/dev/null | head -1)  2>/dev/null)

在此处输入图片描述

答案2

if [ -f t1.csv ]
then
    echo "File is in target dir"
else
    cd `dirname $(find . -iname 't1.csv')`
    pwd
fi

答案3

这里有一个相当全面的讨论:

...当然也可以参阅 grep 手册页

虽然不确定你的问题的第二部分,但希望它能为你指明正确的方向。

相关内容