du
나는 파일 사용량을 표시하기 위해 다음 명령을 사용했습니다 .
$ sudo du -hsx /* | sort -rh | head -n 40
16G /home
5.3G /var
2.6G /usr
840M /run
...
반복적인 작업을 방지하기 위한 함수를 작성하고 싶습니다.
show_disk() {
sudo du -hsx "$1" | sort -rh | head -n 40
}
하지만 이 함수를 실행하면 du
아래와 같이 한 줄의 출력만 표시됩니다.
$ show_disk() /*
0 /bin
제가 보기에는 명령이 쉘 함수에서 다르게 동작하는 것 같습니다 du
. 어디가 잘못되었나요? 어떤 도움이라도 대단히 감사하겠습니다.
답변1
$1
첫 번째 매개변수입니다. 애플리케이션이 아니라 와일드카드를 확장하는 셸이므로 *
하나의 파일/디렉토리와 일치하거나 일치하지 않는 한 단일 인수가 아닙니다.
"$@"
모든 매개변수를 허용하려면 스크립트에 큰따옴표를 사용해야 합니다. ( $*
공백이 포함된 파일 이름이 손상될 수 있으므로 사용하지 마십시오 .)