如何从Linux终端使用regex删除文件夹

时间:2012-08-12 19:07:44

标签: linux

说我有文件夹:

img1/
img2/

如何使用来自Linux终端的正则表达式删除这些文件夹,这些文件夹匹配以img?

开头的所有内容

3 个答案:

答案 0 :(得分:18)

使用find过滤目录

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

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

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

答案 1 :(得分:13)

你可以使用

rm -r img*

应删除当前工作目录中以img

开头的所有文件和目录

编辑:

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

开头的目录
rm -r img*/

答案 2 :(得分:0)

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

此代码将删除任何内容,包括0-9中的四个连续数字,在我的案例文件夹中,月份和日期范围从2002年1月至2014年1月:

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

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