저는 현재 Computing GCSE에 대한 통제된 평가를 받고 있는데 이것이 바로 과제입니다.
명령 프롬프트에 ls -a를 입력합니다. 무슨 일이 일어나고 있는지 보여주고 설명하십시오. 문자 "b"로 시작하는 숨겨진 파일만 표시하도록 이 명령을 수정하십시오.
나는 그것을 해냈고 ls -a
성공 ls -b
하지 못했습니다.
답변1
숨겨진 파일의 이름은 (점)으로 시작하고 , use로 시작하는 이름은 로 나열 .
되지 않습니다 b
..b
$ ls .b*
이름이 로 시작하는 모든 디렉토리의 내용도 나열됩니다 .b
. -a
일치하는 파일 이름 패턴을 쉘에 명시적으로 제공하기 때문에 여기서는 이것이 필요하지 않습니다 . 패턴이 .
(점)으로 시작하므로 숨겨진 파일과 일치합니다. 펼쳐진 패턴은 처리를 위해 넘겨집니다 ls
.
디렉토리의 내용을 나열하지 않으려면 다음을 사용하십시오.
$ ls -d .b*
위의 해결 방법은 패턴과 일치하는 이름이 없으면 오류를 발생시킵니다.
이름만 나열일반 파일로 시작하는 이름 .b
, 사용
$ for name in .b*; do test -f "$name" && printf '%s\n' "$name"; done
일반 유틸리티와 비슷한 방식으로 출력을 얻으려면 ls
( column
비표준 유틸리티라는 점에 유의하세요):
$ for name in .b*; do test -f "$name" && printf '%s\n' "$name"; done | column
마지막 몇 가지 솔루션은 이름이 패턴과 일치하지 않는 항목을 인쇄하지 않습니다.
답변2
ls
그것은 명령이고 -a
명령의 표시입니다. 특정 사람부터 시작하는 파일을 보려면 b
모드를 지정할 수 있습니다. 모드는 .b*
파일 .
이 숨겨져 있음을 의미하고 *
그 밖의 모든 것을 의미합니다.
일반적으로 명령이 수행하는 작업을 모르는 경우 설명서를 읽어보세요.man ls
나열된 항목의 내용을 나열하지 않으려면 이 -d
옵션을 사용하십시오.