我想寫一個班輪找到每個主目錄中的文件數量。我試圖這樣做,因爲有一天我遇到了/ 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