我需要比较“dir1”是否与“dir2”具有相同的文件,并理想地删除“dir2”中的类似内容。
到目前为止,我已尝试使用find命令:
$ find "$dir1" "$dir2/" "$dir2/" -printf '%P\n' | sort | uniq -u^C
但这不起作用,虽然文件名相似,但两个文件夹中文件的扩展名不同。
那我怎么去比较bash中的文件名?
答案 0 :(得分:1)
听起来你只需要使用一个循环:
for path in "$dir1"/*; do
base=${path##*/} # remove everything up to and including the last / to get the name
if [ -e "$dir2/$base" ]; then
echo rm -r "$dir2/$base"
fi
done
遍历$dir1
中的所有内容,如果$dir2
有一个同名文件,则将其删除。
如果您对脚本要删除正确的文件感到高兴,请删除echo
。