查找操作员无法在目录中上去?

Find operator can't go up in directory?

我正在尝试列出一个目录中不存在于另一个目录中的所有文件。

脚本告诉我: 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

备注:

解法: 把“”放出来就行了。

检查文件是否存在使用test -e.

if [ ! -e "../original/$file" ]; then
    echo "File ../original/$file does not exists" 
fi

路径默认在当前工作目录下搜索,不需要使用$(pwd).

您脚本中的错误来自 "$(pwd)/../original/*" - *" 内,因此它不会展开。您可以将其更改为 "../original/"*,但由于 find 递归工作,因此只需 find ../original.