ls -A는 무엇을 합니까? 이 쉘 스크립트를 찾았지만 ls -A가 무엇을 하는지 모르겠습니다. 지시사항에는 그렇게 나와 있지만 ls -A == do not list implied . and ..
그게 무슨 뜻인지 이해가 되지 않습니다.
dir=./$1
if [[ -z $(ls -A $dir) ]]
답변1
ls
점으로 시작하는 파일 이름은 일반적으로 인쇄되지 않습니다. 이는 에 해당되지만 모든 디렉토리에 존재하는 및 -a
가 포함되므로 별로 흥미롭지 않습니다. 이 두 가지를 제외한 모든 것을 인쇄하는 데 사용하십시오 ..
..
-A
$ touch normal .hidden
$ ls
normal
$ ls -a
./ ../ .hidden normal
$ ls -A
.hidden normal
if 문에서 명령은 $( .. )
캡처된 출력을 ls
바꾸고 [[ -z ... ]]
빈 문자열인지 테스트합니다. 즉, 디렉터리에 파일이 없습니다.
일반적으로 ls
출력을 읽는 것은 좋은 생각이 아니며, 셸에서 파일을 반복하려면 를 사용할 수 있습니다 *
. 그러나 여기서는 주어진 디렉터리 이름에 공백(또는 파일 전역 문자), 명령줄에서 확장되어 ls
결과가 엉망이 될 수 있습니다.
바라보다: