我正在尝试编写一个脚本,以将一个目录中的文件与另一个目录(包括子目录)进行比较,并查看它们是否存在。到目前为止,我有:
#!/bin/sh
# This will compare files in 'dropbox>camera uploads' against pics in local 'pictures' folder.
# If present they are moved to 'duplicate' folder if not to 'not_duplicate' inside dropbox
#
# Mar '20
#
#
DROPBOX_LOC="/home/unencrypted/Dropbox/CameraUploads"
DROPBOX_LOC_DUPLICATE="/home/unencrypted/Dropbox/CameraUploads/duplicate"
DROPBOX_LOC_NOT_DUPLICATE="/home/unencrypted/Dropbox/CameraUploads/not_duplicate"
PICS_LOC="/home/user/Pictures"
for file in $DROPBOX_LOC/*
# NOTE: Use of " " preserves whitespace in single variable!
do
echo "Checking for: $file"
#ls -l $file
if [[ -f "$PICS_LOC/${file##*/}" ]]
then
echo "$file is a duplicate"
# Move to duplicate folder
continue
else
echo "$file is a NOT a duplicate"
# Move to not duplicate folder
fi
done
exit 0
但这返回:
Checking for: /home/unencrypted/Dropbox/CameraUploads/2015-11-07 16.58.49.jpg
./delete_dropbox_pics.sh: 22: ./delete_dropbox_pics.sh: [[: not found
/home/unencrypted/Dropbox/CameraUploads/2015-11-07 16.58.49.jpg is a NOT a duplicate
任何人都可以提出修复建议(包括如何搜索子目录)吗?
答案 0 :(得分:0)
为什么不使用diff
命令。
diff -r <directory1> <directory2>
-r,-递归 递归比较找到的所有子目录