【问题标题】:Terminal command / Script to show files by their type and size终端命令/脚本按文件类型和大小显示文件
【发布时间】:2014-08-15 09:01:05
【问题描述】:

我必须经常处理大量需要排序的文件——按它们的大小和文件类型。请分享您对 bash 脚本或终端命令(使用正确的参数)的任何建议,这些命令将按上述标准对文件进行排序。一个很大的优点是脚本还可以按文件类型显示文件的实际数量,如下所示:

  • 831 个 JPEG 文件 / 566MB
  • 122 个 MP4 文件 / 4000MB
  • 98 个 ZIP 文件 / 50MB

我是 Linux 的新手,所以任何关于这个脚本/命令的不同部分的反馈都会很棒,因为我想了解它实际上是如何工作的。

提前谢谢大家!

【问题讨论】:

  • 上述解决方案无效,因为它们没有执行我在原始帖子中概述的内容。假设我有一个名为 boo/ 的目录,我想要的东西将提供一个结果作为我原始查询中的结果 - 不列出所有文件并在它们旁边有它们各自的大小。像这样:1GB - boo 中的 JPEGS/ 2GB - boo 中的 MP4/ 3GB - boo 中的 MP3/ 我发现很难更简单地解释这一点。

标签: linux bash file sorting size


【解决方案1】:

你可以试试这个:

ls -lshR

使用开关-h,您可以轻松读取尺寸(人类可读),使用开关-R,您可以递归地进入文件夹。

最终您可以使用grep 命令保存输入并查找文件类型:

$ ls /your_dir -lshR > your_file

现在您可以搜索文件了

$ grep -e .mp4 your_file

【讨论】:

    【解决方案2】:

    按大小列出:

    ls -lS
    

    只列出包含“.txt”的文件:

    ls | grep .txt
    

    计算包含“.txt”的文件:

    ls | grep .txt | wc -l
    

    【讨论】:

    • 现在我必须弄清楚如何将这些粘贴到脚本中。谢谢!如果有人有更多建议,欢迎提供。
    【解决方案3】:

    您是否假设文件扩展名决定了文件的类型?在 Linux 中不一定是这种情况,我们倾向于测试实际的文件内容。为此,您可以使用file 命令:

    file Kalimba.mp3
    

    返回

    Kalimba.mp3:    MPEG-1 Layer 3 with ID3v2
    

    【讨论】:

    • 不,他假设具有相同扩展名的文件将被计算在一起。
    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 2018-03-27
    • 2013-10-16
    • 2017-10-28
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多