我想从我的音乐文件夹中删除所有 .jpg 文件以节省空间。我的音乐文件夹包含子文件夹,我想知道是否有命令可以从所有这些文件夹中删除所有 .jpg 文件,无论其级别如何。感谢您的帮助!
答案1
一个快速而干净的命令行解决方案是
cd <dir>
find . -type f -iname \*.jpg -delete
.
告诉开始在当前文件夹中搜索。-type f
告诉 find 仅查找文件。-iname
使搜索不区分大小写。-delete
告诉 find 删除/移除所有找到的文件。
注意!我建议先运行命令,-delete
以获取在命令中包含时将被删除的文件列表-delete
。这样,一个小的打字错误就不会删除任何你不想要的东西。
有关如何使用find
以及它能做什么的更多信息,请参阅man find
请注意,使用find
时不会产生任何输出。-delete
关于多个扩展的评论
find . -type f \( -name \*jpg -o -name \*png \) -delete
( .. )
组表达式。需要从 shell 中转义,因此\( .. \)
在示例中-o
逻辑或
因此,上述示例将匹配名称末尾带有jpg
或 的任何文件。可以以相同的方式添加更多扩展名。只需确保记住在每个语句之间,如果没有指定,则默认为(and),这将不起作用,因为文件不能同时以和结尾。png
-o
-name
-o
find
-a
jpg
png
答案2
这应该可以
sudo rm -rf -d ~/Music/*.JPG
这将删除音乐文件夹中的所有 .JPG 文件。
答案3
最简单的方法(如果您使用的是 Ubuntu 桌面):
转到 Nautilus 中的音乐文件夹,按Ctrl+F并搜索.jpg
。
然后删除它
您还可以更改位置并使搜索更加具体。
更新
搜索后更加具体,.jpg
单击绿色按钮Select File type Picture
,然后jpg
从搜索中删除点.
,然后reload
如下图所示
它的功能是搜索图片文件
.jpg .png .gif
以及所有其他文件Picture Format
答案4
Bashshopt -s globstar
在这里可以用于递归通配符:
bash-4.3$ tree
.
├── 10.jpg
└── subfolder
├── 5.jpg
└── another_subfolder
└── 15.jpg
2 directories, 3 files
bash-4.3$ shopt -s globstar
bash-4.3$ rm ./**/*.jpg
bash-4.3$ tree
.
└── subfolder
└── another_subfolder