我是shell脚本的新手。 我需要在两个目录中比较文件名并删除具有相同名称的文件。
EG:
Directory1/
one
two
three
four
Directory2/
two
four
five
运行脚本后,目录将是:
Directory1/
one
three
Diretory2/
five
由于
答案 0 :(得分:3)
test -f
测试文件是否存在:
cd dir1
for file in *
do
test -f ../dir2/$file && rm $file ../dir2/$file
done
cd ..
答案 1 :(得分:2)
又快又脏:
while read fname
do
rm -vf Directory{1,2}/"$fname"
done < <(sort
<(cd Directory1/ && ls)
<(cd Directory2/ && ls) |
uniq -d)
这假设有很多关于文件名的内容,但它应该会显示输入,以及类似的情况。
现在也进行了测试:
mkdir /tmp/stacko && cd /tmp/stacko
mkdir Directory{1,2}
touch Directory1/{one,two,three,four} Directory2/{two,four,five}
运行该命令显示:
removed `Directory1/four'
removed `Directory2/four'
removed `Directory1/two'
removed `Directory2/two'
结果树是:
Directory1/one
Directory1/three
Directory2/five