*
나는 최고의 결과를 검색했지만 내 인생에서 최근 업데이트 이후 (별표)를 무엇으로 대체해야할지 알 수 없습니다 (심지어 Wikipedia도 생각하는 것 같습니다)
du -sh * and du -sh *
작동해야 함)
나는 사용했다
du -sh * | sort -h
이전에는 이 옵션이 정렬되어 있었지만 -h
(Fedora에서는 CentOS에서 작동하도록 하는 데 시간이 좀 걸렸던 것 같습니다 sort -h
) 갑자기* 긴 목록이 출력되는 것 같습니다.
du: invalid option -- ' '
' '
매뉴얼 페이지에 언급되지 않은 모든 유효하지 않은 옵션을 반복합니다 .
누구든지 나에게 무엇이 동등한지 말해 줄 수 있다면
du -sh * | sort -h
업데이트된 버전에 대해.
답변1
아마도 로 시작하는 흥미로운 이름의 파일이 있습니다 -
. glob(예: *
)은 쉘에 의해 확장된다는 점을 기억하십시오.아니요실행 중인 명령입니다. 예를 들어 다음과 같은 경우가 있다고 가정해 보겠습니다.
$ ls -1
foo
-q
두 개의 파일이 포함된 충분히 간단한 디렉토리입니다. ( -1
coreutils에 대한 옵션으로 ls
인해 출력이 단일 열이 됩니다.)
를 실행하면 du -sh *
쉘은 두 번째 인수에 특수 문자( *
)가 포함되어 있고 따옴표로 묶이지 않았음을 인식하여 전역적으로 확장합니다. 일치하는 모든 항목(이 경우 foo
및 )으로 확장됩니다 -q
. 효과는 다음을 실행한 것과 정확히 동일합니다.
$ du -sh foo -q
du: invalid option -- 'q'
Try 'du --help' for more information.
du
위의 오류는 명백합니다. 편의를 위해 GNU 유틸리티에서는 옵션을 파일 이름과 혼합할 수 있습니다 -q
. 그리고 선택의 여지가 없습니다 -q
. (그것은 정말로 여러분이 바랄 수 있는 최선입니다. -q
옵션이 있고 필요하지 않은 작업을 수행했다면 더 나쁠 것입니다.)
Stépahane의 제안은 glob을 로 변경하는 것입니다 ./*
. 그 결과 du -sh ./foo ./-q
는 더 이상 로 끝나지 않으므로 파일 이름으로 처리됩니다 -
. 그가 제안한 또 다른 옵션은 --
GNU 유틸리티에 더 이상 옵션이 없음을 알려주는 것입니다. 파일/디렉터리 이름.
정말 그래야 해언제나을 사용 … ./*
하거나 … -- *
대체 *
하지만 우리는 모두 게으르다… 특히 모든 파일 이름을 신뢰하지 않는 경우 주의하세요.
답변2
du는 파일의 대시를 사용하여 매개변수로 전달합니다.
명령에 "--"를 전달하면 더 이상 옵션이 전송되지 않는다는 의미이므로 다음과 같이 명령을 실행하십시오: du -fh -- * 또는 du -sh -- *
나를 위해 일해라...
이 스레드가 도움이 되었습니다:-http://www.webhostingtalk.com/showthread.php?t=1354139