내 디렉토리는 많은 파일로 가득 차 있습니다. 어떤 종류인지, 왜 그렇게 많은지 궁금합니다.
몇 가지 명령을 시도하면 다음과 같은 일이 발생합니다.
ls -l | wc -l
1514340
ls | head -n 4
2004112700001.htm
2004112700002.htm
2004112700003.htm
2004112700004.htm
ls *.xml | head -n 4
20041127.xml
20041225.xml
20050101.xml
20050108.xml
ls -l *.htm | wc -l
bash: /bin/ls: Liste d'arguments trop longue
0
# Any other kind of ls command with *.htm, *.* is failing too.
분석을 시작하려면 wc -l
출력이 완전히 완료될 때까지 기다려야 한다는 것을 알고 있습니다 . ls -l *.htm
출력이 너무 커서 실패했습니다.
진짜야?
이 경우 ls
명령을 와 함께 작동시키는 좋은 방법은 무엇입니까 wc -l
? wc
출력이 완전히 완료되기 전에 명령이 비동기적으로 시작되도록 요구하는 방법이 있습니까 ?
답변1
rm *을 사용하여 디렉터리에 있는 수백만 개의 파일을 삭제하려고 하면 동일한 문제가 발생합니다. 나는 시스템이 찾은 모든 파일 이름으로 명령을 "확장"하고 있다고 생각하는데... 그럴 여유가 없습니다.
대신 "찾기"를 사용하는 것이 좋습니다.
find . -mindepth 1 -maxdepth 1 -name "*.html" | wc -l