首页 文章

Mac OS X终端 - 显示子文件夹中的文件类型列表

提问于
浏览
1

我有一个外置硬盘驱动器,其中包含恢复驱动器的内容 . 所有文件夹都有'recup_dir.XX'名称,有超过一千个 .

我使用以下方法复制了我能想到的所有特定文件类型的内容:

find . -type f -name \*.jpg -exec cp \{\} /Volumes/somedrive/somefolder/ \;

我浏览了所有我能想到的文件类型 - 但我想查看驱动器和子文件夹中的文件类型 .

我可以使用哪个命令将遍历所有文件夹和子文件夹并显示每种文件类型的总数?

du -hcs

总共提供了驱动器 - 但我是在每个文件类型的总数之后 .

任何人都可以帮我指出正确的方向 . 我有成千上万的文件夹,我想确保我没有忘记任何文件类型 - 所以想要得到它们的列表 .

感谢您的帮助 .

1 回答

  • 0

    您可以使用awk(以及其他脚本语言)执行此操作 . 这是 awk 中的一个脚本:

    #!/bin/sh
    find . -type f -ls | awk '
    {
        type = $11;
        if ( type ~ /\./ ) {
            sub(/^.*\./, "", type);
        } else {
            type = ".";
        }
        sizes[type] += $7;
    }
    END {
        for ( type in sizes ) {
            printf "%10d %s\n", sizes[type], type;
        }
    }' | sort -r -n
    

    它使用数组 sizes ,文件后缀作为索引 . awk 没有内置排序,但您可以通过 sort 管道结果来实现 .

    例如,这里是MacOS的输出,运行在xterm包的Debian脚本的副本中:

    341580 html
     72830 /changelog
      8458 /copyright
      5846 /control
      5754 diff
      2401 /rules
      1817 Debian
      1328 asc
      1284 postinst
       964 1
       723 prerm
       631 /NEWS
       442 faq
       419 /local/lxterm
       279 ctlseqs
       162 conf
       127 install
       125 /tests/control
       102 /watch
       101 docs
        58 /patches/series
        23 /clean
        12 /source/format
         3 /compat
    

    您在运行脚本时看到的内容取决于存在的文件后缀 . 在这个例子中,有几个大的“.html”文件 .

相关问题