: 으로 디스크 공간을 계산하고 싶지만 일부 디렉토리에 액세스 du
해야 합니다 .sudo
$perl -ane '$i+=($F[0] =~ s/^(\d+).*/$1/r); print "$i\n"' <(sudo du /home)
이것은 만든다:
[sudo] password for user1:
sudo: unable to read user1: Input/output error
프로세스 교체에서 sudo를 활성화하는 방법은 무엇입니까?
답변1
먼저 빈 명령으로 실행하거나 sudo -v
인증 토큰을 설정한 다음 비밀번호를 묻지 않고도 후속 실행이 작동해야 합니다. 시스템에 sudo가 어떻게 설정되어 있는지에 따라 다르지만 기본 인증 기간은 15분입니다.
$ sudo -v
[sudo] password for iv:
$ cat <(sudo du -d 1)
28636 ./foo
...
또는 프로세스 대체 대신 파이프를 사용하십시오.
$ sudo du -d 1 | cat
[sudo] password for iv:
28636 ./foo
...
Perl 스크립트는 별 의미가 없는 것 같습니다. du
하위 디렉터리가 있는 디렉터리를 포함하여 모든 디렉터리를 나열하고 모든 하위 트리 자체의 크기를 계산합니다. 따라서 표시되는 숫자만 추가하면 각 깊이 수준에 대해 모든 디렉터리를 한 번씩 계산할 수 있습니다. 예를 들어, 다음은 100kB 파일입니다 a/b/c
.
$ du a
104 a/b/c
108 a/b
112 a
또한 du -s
주어진 디렉토리의 전체 크기만 표시되며, 적어도 GNU du는 표시되는 하위 디렉토리의 수준 수를 갖 -d
거나 제한합니다.--max-depth=N