Bash 使用shell脚本删除具有相同属性的文件

Bash 使用shell脚本删除具有相同属性的文件,bash,shell,Bash,Shell,我完全是shell脚本的新手。 Im需要比较两个目录中的文件名并删除同名文件 例如: 运行脚本后,目录将为: Directory1/ one three Diretory2/ five 谢谢,又快又脏: while read fname do rm -vf Directory{1,2}/"$fname" done < <(sort <(cd Directory1/ && ls) <(

我完全是shell脚本的新手。 Im需要比较两个目录中的文件名并删除同名文件

例如:

运行脚本后,目录将为:

Directory1/
one
three

Diretory2/
five
谢谢,又快又脏:

while read fname
do 
    rm -vf Directory{1,2}/"$fname"
done < <(sort 
              <(cd Directory1/ && ls) 
              <(cd Directory2/ && ls) | 
         uniq -d)
运行该命令显示:

删除了'Directory1/four'
删除“目录2/4”
删除“目录1/2”
删除“目录2/2”
生成的树是:

Directory1/one
目录1/3
目录2/5

测试-f
测试文件是否存在:

cd dir1
for file in *
do
    test -f ../dir2/$file && rm $file ../dir2/$file
done
cd ..

我尝试了diff Directory1/Directory2/但它显示了每个目录中的单个文件,而不是重复的文件。您只需要删除同名文件吗?不同的文件可以有相同的名称。正确的方法是使用
cksum
md5
来确定文件是否确实重复。只有相同的名称才合适。内容对我来说并不重要。thaks.why double-less-than被使用<<?

mkdir /tmp/stacko && cd /tmp/stacko
mkdir Directory{1,2}
touch Directory1/{one,two,three,four} Directory2/{two,four,five}
cd dir1
for file in *
do
    test -f ../dir2/$file && rm $file ../dir2/$file
done
cd ..