/home이 예상보다 두 배나 큰 이유는 무엇입니까?

/home이 예상보다 두 배나 큰 이유는 무엇입니까?

오늘 디스크 사용량을 확인하고 다음 명령을 실행했습니다(sudo를 사용하여 "권한 거부" 메시지가 표시되지 않음)

$ du -hs /home
26G     /home

$ ls -la /home
total 24
drwxr-xr-x  4 root  root   4096 Dec 27  2017 .
drwxr-xr-x 25 root  root   4096 Oct  1 17:39 ..
drwxrwxr-x  3 root  root   4096 Dec 27  2017 .ecryptfs
drwx------ 53 paper paper 12288 Oct  6 14:38 paper`

$ du -hs /home/*
13G    /paper

/home 디렉토리가 사용자 디렉토리 크기의 정확히 두 배인데도 사용자 디렉토리가 /home에 있는 유일한 디렉토리처럼 보이는 이유는 무엇입니까?

답변1

shopt dotglob동일한 쉘에서 실행 해 보십시오 .

아마도 dotglob그렇지 않은 경우 *확장자(와일드카드)에 이름이 시작하는 파일과 디렉터리가 포함되지 않게 됩니다(와일드카드 확장자에 절대 포함되지 않을 것으로 확신하는 .특수 디렉터리 항목 포함 ) . )을 포함하도록 확장 프로그램을 혼란스럽게 만듭니다 ....rm -rf ./*./..

따라서 실행하면 du -hs /home해당 디렉터리의 모든 항목이 계산되지만 du -hs /home/*까지만 확장되므로 du -hs /home/paper후자 디렉터리만 계산됩니다.

여기에는 암호화된 데이터가 포함될 수 있으므로 /home/.ecryptfs해독된 데이터와 크기가 거의 같다는 것이 합리적입니다. 따라서 파일은 실제로 두 번 계산되지만 du상위 디렉터리를 가리키는 경우에만 해당됩니다 .

shopt -s dotglob해당 쉘 세션에서 dotglob 설정을 켜고 다시 실행 sudo du -hs /home/*하면 실행했을 때와 동일한 크기로 표시되는 것을 볼 수 있습니다 sudo du -hs /home.

echo이를 보여주는 또 다른 방법은 명령 시작 부분 에 넣는 것입니다 . 예를 들어 쉘이 어떻게 확장되는지 보여줄 du -hs /home/*수 있습니다 .echo du -hs /home/**


서술자로서,나는 습관적으로 모든 일을 겪기 시작하지 말 것을 권한다 sudo. 필요한 경우 sudo를 사용하고, 그렇지 않으면 사용하지 마십시오. 예를 들어, 디렉토리는 누구나 읽을 수 있으므로 ls -la /home수퍼유저로 실행할 필요가 없습니다 ./home

관련 정보