忽略文件类型的两个目录之间的区别?

时间:2018-12-02 20:30:37

标签: linux

有没有一种比较两个目录但忽略文件扩展名的快速方法? 我知道命令通常是:

diff dir1 dir2

但是在这种情况下,dir1中的apple.gif和dir2中的apple.png是两个区别。

有没有办法使apple.gif和apple.png被视为相同?

1 个答案:

答案 0 :(得分:0)

您可以使用bash for loop将两个目录复制到/ tmp /中,而没有文件扩展名,然后在复制的目录上运行diff,最后删除临时目录,例如:

假设您有dir / 1和dir / 2,则要比较1和2。

#create all dirs and subdirs
cd dir;
for i in `find . -type d `;do  mkdir /tmp/$i ;done
#copy all files without extension(remove string after last '.')
for i in `find . -type f `;do cp $i /tmp/`echo $i | rev | cut -d'.' -f 2- | rev` ;done
#run diff
diff /tmp/1 /tmp/2
#clean up ,remove created dirs
rm -rf /tmp/1 /tmp/2