【问题标题】:List all files with file count as one of the output columns in $BASH?列出所有具有文件计数的文件作为 $BASH 中的输出列之一?
【发布时间】:2014-07-03 09:26:58
【问题描述】:

有没有一种方法可以显示类似于ls -al 的文件,也可以显示列出的目录的文件数?有点像ls -alls -1 | wc -l 作为最后一列?我尝试过切换参数,并且几乎放弃了管道,因为每当我尝试大量操纵结果时都会遇到语法错误。另外,它们是金色的,所以我觉得我错过了一些明显的东西。一种修改ls 的方法,因此它还会显示它列出的目录的文件数,至少应该是这样。有谁知道让它工作的方法吗?

【问题讨论】:

  • 是否需要保留颜色?
  • 这看起来很棒!我并不关心颜色,因为我可以手动调整格式。这两个给出总数。我可以使用它来创建一个递归版本来显示每个目录的计数。谢谢!这很好用!

标签: linux bash terminal ls wc


【解决方案1】:

目录

ls -al | awk '/^d/{d++}{print}END{print "Directories: "d}'

所有文件

ls -al | awk '{print}END{print "Files:" NR}'

【讨论】:

    【解决方案2】:

    我认为这样的事情会更接近你想要的

    > mkdir testdir && cd testdir && touch a && ln -s a b && mkdir c && touch c/{1..10}
    > shopt -s dotglob; for i in *; do [[ -d $i ]] && paste <(ls -ld "$i") <(find "$i" -mindepth 1 | wc -l) || ls -l "$i"; done 
    -rw-rw-r-- 1 user user 0 Jul  8 00:04 a
    lrwxrwxrwx 1 user user 1 Jul  8 00:04 b -> a
    drwxrwxr-x 2 user user 4096 Jul  8 00:04 c/ 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 2013-06-26
      • 2014-05-12
      • 2010-10-12
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      相关资源
      最近更新 更多