linux - 仅当文件是 .png 图像文件时,才使用 bash 命令删除目录中的所有文件

标签 linux bash

很抱歉这个新问题,我通常会查找如何执行此操作,但我处于一种可怕的情况,任何错误都可能导致大量文件丢失,所以我需要小心。

有什么想法吗?最好是经过预先测试的,谢谢!

最佳答案

我假设这些文件没有与文件类型对应的扩展名(PNG 文件为 .png),否则解决方案将是显而易见的。

如果是这种情况,您可以使用 file 的魔力。此命令将显示当前目录和任何子目录中的所有 PNG 文件:

$ find  -exec bash -c "file -b --mime-type {} | grep -q ^image/png$" \; -print

这个将删除它们:

$ find  -exec bash -c "file -b --mime-type {} | grep -q ^image/png$" \; -delete

关于linux - 仅当文件是 .png 图像文件时,才使用 bash 命令删除目录中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035770/

相关文章:

c++ - CMake 找不到 boost 。

linux - 从 linux 中的多列创建表,但将字段 2、3(也可能是 4)视为一列

bash - 引号内的通配符

c++ - 如何循环 Blowfish Crypto++

linux - 有没有办法让非 root 进程绑定(bind)到 Linux 上的 "privileged"端口?

linux - 尝试根据特定准则将文件复制到新目录时陷入困境

linux - 查看传递的参数

bash - 为什么不能在 bash 4.1.2 中访问带有破折号的环境变量?

linux - 在文件中grep并替换字符串

c - 无需等待接收整个文件即可发送文件