使用 Bash 统计一个文件夹下的文件数目
统计当前目录下的所有文件数目:
| 1 | ls -l | grep "^-" | wc -l | 
统计当前目录下的目录的文件数:
| 1 | ls -l | awk '{ if ( $1 ~ "^d" ) print $9 }' | while read $dir | 
本来尝试使用 xargs ,但是,xargs 后面必须跟一个程序,无法使用函数,也不执行多条语句,调换变量时,对于括号内变量也不扩展 ,例如
| 1 | ls -l | awk '{ if ( $1 ~ "^d" ) print $9 }' | xargs -n1 -I {} echo "{} : $(ls -l {} | grep | grep '^-' | wc -l )"; | 
这个语句,最好会在 $(ls -l {} ....) 处报错,因为 {} 未被正确替换为变量,所以,实际执行就是 $(ls -l {} ....) 本身,所以会提示,找不到文件 {}。
最后,想到用 read 从管道读出数据的方法。
Author: 哒琳
Permalink: http://blog.jieis.cn/2022/921e8ff7-98a4-4184-bad1-99d67f2e62e4.html
Comments