我试图列出一个目录中不存在的所有文件。
脚本告诉我:
find: ‘ (...) /nanorc/../original/*’: No such file or directory
问题出在哪里?谢谢!
代码:
# todo: list all files that isn't in original folder
# get a file in nanorc folder
# try to find it in the ../original folder
# if there isn't, list it.
cd nanorc/
for file in *; do
[ -e "$file" ] || continue
# if [ -z $(find "$(pwd)/../original/*" -name "$file") ]; then
if [ -z $(find $(pwd)/../original/* -name "$file") ]; then
lite=`printf "%s %s" "$lite" "$file"`
fi
done
cd ..
echo "$lite
注意:
解决方案: 只需熄灭“”即可。
答案 0 :(得分:0)
要检查文件是否存在,请使用test -e
。
if [ ! -e "../original/$file" ]; then
echo "File ../original/$file does not exists"
fi
默认情况下,在当前工作目录中搜索路径,无需使用$(pwd)
。
您的脚本中的错误来自"$(pwd)/../original/*"
-*
在"
内部,因此它不会扩展。您可以将其更改为"../original/"*
,但是由于find
是递归工作的,因此只需find ../original
。