8

假设我有文件夹:

img1/
img2/

如何使用 Linux 终端中的正则表达式删除那些与以 img 开头的所有内容相匹配的文件夹?

4

3 回答 3

27

使用 find 过滤目录

$ find . -type d -name "img*" -exec rm -rf {} \;

正如评论中提到的,这是使用 shell glob 而不是正则表达式。如果你想要正则表达式

$ find . -type d -regex "\./img.*" -exec rm -rf {} \;
于 2012-08-12T19:31:16.203 回答
20

你可以使用

rm -r img*

这应该删除当前工作目录中以 img 开头的所有文件和目录

编辑:

仅删除当前工作目录中以 img 开头的目录

rm -r img*/
于 2012-08-12T19:11:20.167 回答
0

在寻找如何使用正则表达式删除目录中的特定文件的过程中,我偶然发现了这篇文章和 Mahmoud Mustafa 的另一篇文章:http: //mah.moud.info/delete-files-or-directories-linux

此代码将删除任何内容,包括 0-9 中的四个连续数字,在我的情况下,文件夹的月份和日期范围为 Jan2002 - Jan2014:

rm -fr `ls | grep -E [0-9]{4}`

希望能帮助那些四处寻找如何删除单个文件而不是文件夹的人。

于 2014-04-07T17:03:44.897 回答