我知道这听起来像是一个相当简单的问题但事实并非如此!
我试图通过 GUI 查找可移动驱动器上的所有视频文件。视频文件可能有多种类型,如 avi、mpg、mov... 等。我不确定所有可能的文件类型,这就是为什么我要使用 GUI 工具而不是终端搜索命令。
我查询的驱动器包含大量(300GB)的数据,跨越 10 年的备份,一团糟!驱动器的文件类型是 ext4。
我试过 catfish,它可以完美地定位所需文件,但没有右键单击复制到位置功能!我试过 KDE (4.8) 的 nepomuk 桌面搜索索引器,但它花了太长时间来索引大量数据并且没有完成,而且它似乎没有办法只索引文件的初始标题。我还在 Ubuntu 12.04 上尝试了最新的“桌面搜索”应用程序,但它没有文件类型选项!
我依稀记得早期的各种 Ubuntu 版本都无法完成这项任务。
我们将非常感谢您的建议。
答案1
文件结尾不可能有那么多,对吧?至少它是一个有限的数字。我发现这项任务实际上非常适合终端工作。
除了常见的扩展之外
- .avi
- .mpg/.mpeg
- .wmv
- .mov
- .mkv
- .flv
以不区分大小写的方式,你可以通过搜索超过一定大小的所有文件来猜测剩余的视频文件,也许可以排除一些常见的非视频嫌疑文件,例如
- .rar
- 。压缩
- .gz
- .mp3
- .flac
- .doc
等等,以便更清楚,如果发现更多问题,请优化此列表。
因此我会反复做例如
find /my/drive -not -iregex '.*\.\(avi\|mpe?g\|wmv\|mov\|mkv\|flv\|rar\|zip\|gz\|mp3\|flac\|pdf\|doc\)' -type f -size +10M
查找更多可能是视频的文件结尾并将其添加到视频扩展名列表中。
这不应该花费多次运行(可能仅一次),并且会很快,因为列表在第一次运行后被缓存。
收集到文件结尾后,通过匹配精炼的扩展名列表来查找所有视频文件:
find /my/drive -iregex '.*\.\(avi\|mpe?g\|wmv\|mov\|mkv\|flv\)' -type f
现在您可以直接在此命令的基础上进行构建并一次性对所有文件执行操作,例如将它们移动到其他位置,或仅列出它们,或者执行您想要的操作。也许只需在知道它们的位置后手动对它们进行操作即可。
有更复杂的解决方案可以测试所有文件的内容,例如,file
结合实用程序,find
然后grep
对视频文件的结果进行 :ing,但这会慢很多。文件扩展名猜测是一个更粗略的网格,但无论如何都可能会影响所有文件。