显示 Linux 上未链接的所有媒体

显示 Linux 上未链接的所有媒体

我正在寻找最简单的方法来从经过过滤的文件夹中递归获取媒体文件列表(通过 mp4、avi、mkv 等扩展名),以仅获取具有一个硬链接的文件。

我的 ls -lR 输出当前由 * 权限 * 硬链接数量 * 所有者 * 组 * 大小 * 日期 * 名称组成

喜欢https://unix.stackexchange.com/questions/103114/what-do-the-fields-in-ls-al-output-mean#103118

我目前正在使用 ls 和 grep 的混合体,但它工作得不太好,因为它提供了完整的信息,而不仅仅是文件名。

感谢您的帮助!

答案1

ls不建议解析。在许多类似情况下find是正确的工具。find在 Debian 中应该支持-links测试。man 1 find内容如下:

-links n
文件有n链接。

这个测试非常适合你。解决方案:

find . -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" \) -links 1

添加您想要的任何扩展名。考虑使用-iname而不是 来-name执行不区分大小写的匹配。或者,如果您想通过内容而不是扩展名进行测试,请使用此方法(尽管速度会慢得多):

find . -type f -links 1 -exec sh -c 'file --mime-type "$1" | grep -q "video/"' sh {} \; -print

相关内容