각 홈 디렉토리에있는 파일의 수를 찾기 위해 하나의 라이너를 쓰려고합니다. 나는/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/과 같이 SO에 대한 다른 질문도 참조하십시오. count-number-of-files-in-each-directory – x29a
누락 된';''cd $ i' ?? –
아니면 그냥'cd' altogeather를 제거하고 (어쨌든 쉘 스크립트에서 사용하는 것이 가장 좋은 방법은 아닙니다) 경로를 찾기에 넣으십시오. 또한, 왜 이것을 "하나의 라이너"로 사용하고 있습니까? – BroSlow