Linux 명령에서 이러한 특수 문자는 무엇을 의미합니까?

Linux 명령에서 이러한 특수 문자는 무엇을 의미합니까?

~에 따르면https://www.cs.washington.edu/lab/faq/home-directory-size:

현재 디렉터리에 포함된 모든 파일 또는 하위 디렉터리(숨겨진 파일 및 하위 디렉터리 포함)의 총 크기를 크기별로 정렬하여(가장 큰 것부터) 표시하려면 다음 명령을 실행합니다.

du -sk * .??* | sort -nr

-sk파이프 앞과 뒤의 기호는 무엇을 의미합니까 * .??*?

보너스 질문으로, Google을 사용하여 이와 같은 항목(Linux 명령줄의 특수 문자 조합)을 어디서/어떻게 찾을 수 있나요? 검색을 시도했지만 구두점일 뿐이어서 많은 것을 찾을 수 없었습니다.

답변1

일반적인 파일 이름입니다와일드카드또는전반적인 상황또는패턴 매칭수치. ?모든 단일 문자, *임의 개수의 모든 문자와 일치합니다.

예외는 파일 이름이 점으로 시작하는 경우 .선행 *됩니다 .아니요일치합니다(따라서 "숨겨진" 파일입니다). 따라서 *이름이 점으로 시작하지 않는 파일은 모두 일치되며, .??*이름이 점으로 시작하고 3자 이상 포함된 파일도 일치됩니다. 후자는 .and 를 피하려고 시도 ..하지만 예를 들어 놓치기 때문에 발생합니다 .a.

답변2

 du -sk * .??* | sort -nr

이것은 완전히 바보입니다.

  1. *(모두) 하위 디렉터리 또는 파일
  2. .??* (모두) 이름에 2자 이상의 문자가 포함된 디렉터리 또는 파일 숨기기

그런 다음 결과를 정렬합니다.

@ilkkachu는 .??*/가 디렉토리를 표시하는 데에만 사용될 수 있다고 언급했습니다.

관련 정보