我有一个目录,其文件扩展名为.JPG或.NEF,并且我想删除目录中不存在X.JPG的X.NEF格式的文件。(这里的X可以是任何字符串。)除了手工之外,我不知道该怎么做。
当您要查找目录A中同时存在于目录B中的所有文件时,则是一种更一般的情况。(第一个问题可以使用转换为第二个问题mmv
。)
您可以使用Shell的${var%ext}
参数替换功能按文件删除原始扩展名:
touch file{1..6}.NEF file{1,2,4,6}.JPG
然后
for nef in *.NEF; do [[ -f "${nef%.NEF}.JPG" ]] || echo rm -- "$nef"; done
结果是
rm -- file3.NEF
rm -- file5.NEF
解释:
第一个命令仅创建.NEF
编号file1.NEF
为的6个文件,file6.NEF
并.JPG
为其中的3个创建对应的文件,即仅一些空文件来测试第二个命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句