假设我有文件夹:
img1/
img2/
如何使用 Linux 终端中的正则表达式删除那些与以 img 开头的所有内容相匹配的文件夹?
使用 find 过滤目录
$ find . -type d -name "img*" -exec rm -rf {} \;
正如评论中提到的,这是使用 shell glob 而不是正则表达式。如果你想要正则表达式
$ find . -type d -regex "\./img.*" -exec rm -rf {} \;
你可以使用
rm -r img*
这应该删除当前工作目录中以 img 开头的所有文件和目录
编辑:
仅删除当前工作目录中以 img 开头的目录
rm -r img*/
在寻找如何使用正则表达式删除目录中的特定文件的过程中,我偶然发现了这篇文章和 Mahmoud Mustafa 的另一篇文章:http: //mah.moud.info/delete-files-or-directories-linux
此代码将删除任何内容,包括 0-9 中的四个连续数字,在我的情况下,文件夹的月份和日期范围为 Jan2002 - Jan2014:
rm -fr `ls | grep -E [0-9]{4}`
希望能帮助那些四处寻找如何删除单个文件而不是文件夹的人。