如何从目录中删除除少数文件以外的所有文件?

时间:2012-08-21 00:41:48

标签: linux shell delete-file rm

我的目录结构如下:

/var/www/html/pictures/media0/01/test_01.jpg
/var/www/html/pictures/media0/01/test_02.jpg
/var/www/html/pictures/media0/01/test_03.jpg
/var/www/html/pictures/media0/01/test_04.jpg
/var/www/html/pictures/media0/01/test_05.jpg

我想使用linux命令删除01test_03.jpgtest_05.jpg以外的所有文件,可能是rm

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

最简单的方法是将要保留的文件移动到其他位置,然后删除其余文件并将其移回。

如果这是一个脚本,你需要更高级的东西,我可以使用find来编写一些东西。让我知道。

答案 1 :(得分:0)

您可以使用:

rm !(path_to_file/test_0{3,5}.jpg)

这将排除除 test_03.jpg test_05.jpg

以外的所有文件

答案 2 :(得分:0)

shopt -s extglob
echo !(/var/www/html/pictures/media0/test_0[3,5].jpg)

如果输出是您要删除的文件,请替换" echo"与" rm"并再次运行它。