我想写一个班轮找到每个主目录中的文件数量。我试图这样做,因为有一天我遇到了/ home的inode用完的情况。我花了很长时间才找到罪犯,我想缩短这个过程。这是我的,但它不工作。为什么我的一个班轮没有被执行
for i in /home/*; do if [ -d "$i" ]; then cd $i find . -xdev -maxdepth 100 -type f |wc -l; fi done
当我运行它时,它为每个主目录打印一个0,并且我保留在根目录下。
然而,当我跑得这一部分:
for i in /home/*; do if [ -d "$i" ]; then cd $i; fi done
我在最后一个主场目录拉闸导致我相信我走过他们。
当我在每个用户的主目录中运行以下命令:
find . -xdev -maxdepth 100 -type f |wc -l
我得到一个合法的答案。
您是否缺少cd $ i后的&&?也看到其他问题,如http://stackoverflow.com/questions/9839055/searching-and-counting-files-in-directories-and-subdirectories-bash或http://stackoverflow.com/questions/15216370/如何计算每个目录中的文件数 – x29a
在'cd $ i'后缺少';''? –
或者只是删除'cd' altogeather(不是最好的做法是将其放在shell脚本中),然后将路径放到您的find中。另外,你为什么把这个作为一个“班轮”呢? – BroSlow