如何列出包含特定文件的所有目录,并使用shell脚本将它们存储在数组中。我尝试了下面的代码,但它给了我这个错误:ls: **/myFile.txt: No such file or directory
。 myFile.txt
可以是任何文件。列出包含特定文件的所有目录并将它们存储在数组中
代码:
folderArray = ($(ls **/myFile.txt | tr -d myFile.txt))
echo folderArray
for folder in ${folderArray[@]}
do
echo "myFile.txt is present in $folder"
done
你得到的错误信息表明'**'不被识别为匹配模式,它会查找名为'**/myFile.txt'的文件。可能是因为'GLOB'选项未设置(使用'setopt | grep'^ noglob $'进行检查)。 'tr'也适用于单个字符,因此'tr -d abc'不仅会删除strc'abc',还会删除'a','b'和'c'。 – Adaephon 2014-10-27 07:09:57