Wil*_*ill 3 unix bash scripting grep ls
我正在尝试计算 Unix 目录中所有子目录中的子目录和所有文件总数。我试过这个:
ls -lR | grep ^d | wc -l
Run Code Online (Sandbox Code Playgroud)
但这只是给了我总的子目录,而不是总文件。我将如何修改它,或者有没有办法从一个命令中找出两个数字?还是我应该把它分成两部分?
因为文件可能包含换行符或空格等,最好的方法是使用find而不是打印文件名,而是.为找到的每个文件打印一个或类似的名称。该解决方案看起来像
find . -type d -or -type f -printf '.' | wc -c
Run Code Online (Sandbox Code Playgroud)
它将从当前目录开始搜索任何-type d或-type f哪个目录或文件。对于每个它将打印.,然后我们计算打印的字符数。