我正在尝试将我在AIX上运行的一段代码带到Linux上,但我无法让它工作。
[ -f $FolderPath/*/FileName.txt ] && echo 1 || echo 0
上面搜索FolderPath,然后*是其所有子目录,寻找FileName.txt。如果找到(不止一次),则返回1,否则返回0.
在Linux中,我收到Too Many Arguments错误,因此我认为更改为[[]]会解决此问题,但它似乎不会处理通配符*。
任何想法?
由于
答案 0 :(得分:2)
您可以尝试以下命令,然后查询状态代码$?
:
find $FolderPath -name 'FileName.txt' | grep -E '*'
当find
命令没有列出文件时返回1,当有{0>}时为0时返回0。
或者,如果您只对命中特定级别感兴趣以避免在目录树中进行深度搜索,那么您可以使用-maxdepth n
选项。