2016-06-07 5 views
0

ls의 결과는 *입니까? 예 : ls | du -sh 은 현재 디렉토리의 전체 크기에 한 행만 표시합니다. du -sh * 은 현재 디렉토리에있는 각 파일 또는 subDir의 크기를 표시합니다.`ls` 작업은`*`와 어떻게 비교 되는가?

왜 결과가 같지 않습니까?

+0

참고! 'ls'는''path/.config' "와 같은 디렉토리를 표시하지 않습니다." – Noproblem

+0

@Noproblem'*'는'shopt -s dotglob'가 아니라면'.'로 시작하는 파일을 포함하도록 확장되지 않습니다. –

답변

3

ls | du -sh. 크기 만보고합니다. du은 표준 입력에서 디렉토리 이름을 읽는 것을 지원하지 않기 때문입니다.
따라서 ls | du -sh을 실행하면 만 실행되는 것과 동일한 결과가 나타납니다.

1

du -sh stdin에서 읽지 않습니다. 따라서 whatever | du -shdu -sh과 같습니다.

du -sh * 그러나 du -sh file1.txt file2.txt file3.txt으로 확장됩니다. 여기서 file1.txt, ...는 현재 디렉토리의 파일/디렉토리입니다.

곱하기 파일이 du -sh으로 지정되면 출력에는 각 파일의 합계가 표시되고 du -sh에는 현재 디렉토리의 합계 만 표시됩니다.

관련 문제