用于删除重复文件的Bash脚本
我是bash脚本新手,但我相信这是删除给定目录中具有以下名称的重复图像文件的最佳方法:用于删除重复文件的Bash脚本,bash,file,scripting,duplicates,delete-file,Bash,File,Scripting,Duplicates,Delete File,我是bash脚本新手,但我相信这是删除给定目录中具有以下名称的重复图像文件的最佳方法: IMG_151.jpg IMG_151 2.jpg IMG_151 3.jpg IMG_152.jpg IMG_152 2.jpg IMG_152 3.jpg .... 换句话说,我想在目录中循环并删除所有带有附加编号的图像文件。任何指导都将不胜感激。使用正则表达式和find命令() 此命令搜索扩展名为“.jpg”的所有文件,扩展名以“IMG_2;”开头,并将数字从0连接到999,然后查找空格和0到9的数字
IMG_151.jpg
IMG_151 2.jpg
IMG_151 3.jpg
IMG_152.jpg
IMG_152 2.jpg
IMG_152 3.jpg
....
换句话说,我想在目录中循环并删除所有带有附加编号的图像文件。任何指导都将不胜感激。使用正则表达式和
find
命令()
此命令搜索扩展名为“.jpg”的所有文件,扩展名以“IMG_2;”开头,并将数字从0连接到999,然后查找空格和0到9的数字
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg"
如果要删除此文件,请添加rm命令:
find . -regextype sed -regex ".*/IMG_[0-999][[:space:]][0-9]*.jpg" -exec rm -rf {} \;
删除此文件之前,请使用命令查看正则表达式是否正确
如果您在prepend
sudo
前遇到一些权限问题,您可能只需要:
rm *\ *
假设所有重复文件中都有空间,而原始文件中没有一个有空间。有点复杂,但更安全:
rm IMG_???\ ?.jpg
如果你愿意的话。无论如何,不需要循环。首先要确定,
ls
查看正则表达式正在查找的内容:
ls IMG_[0-9][0-9][0-9]\ [0-9].jpg
如果准确,您可以删除它们:
rm IMG_[0-9][0-9][0-9]\ [0-9].jpg
复制品确实都有空格。非常合法,谢谢!