ls 명령을 사용하지 않고 현재 디렉터리나 디렉터리 경로의 내용을 어떻게 나열할 수 있습니까? echo 명령을 사용하여 이를 수행할 수 있습니까?
답변1
printf '%s\n' *
쉘 명령은 현재 디렉토리에 숨겨져 있지 않은 파일을 한 줄에 하나씩 나열합니다. 숨겨지지 않은 파일이 없으면 *
이것이 수정된 쉘(csh, tcsh, fish, zsh, bash -O failureglob)을 제외하고는 단독으로 나타납니다.
echo *
-
공백 문자로 구분된 숨김되지 않은 파일은 쉘/에코 구현에 따라 첫 번째 파일 이름이 백슬래시 문자로 시작 하거나 파일 이름에 백슬래시 문자가 포함되지 않는 한 나열됩니다 .
셸은 *
이를 명령에 전달하기 전에 파일 목록으로 확장합니다. 여기에서는 head -- *
처음 몇 줄을 표시하는 등 ( head
여러 파일을 허용하는 구현을 사용하여) 모든 명령을 사용할 수 있습니다 stat -- *
.
숨겨진 파일을 포함하고 싶습니다.
printf '%s\n' .* *
(셸에 따라 .
및 도 포함됩니다 ..
). 그리고 zsh
:
printf '%s\n' *(D)
ls
디렉터리 내용을 나열할 수 있는 다른 응용 프로그램(shell glob 및 제외 )은 다음과 같습니다 find
.
find . ! -name . -prune
(숨겨진 파일 포함, 제외 .
) ..
.
Linux의 경우 lsattr
(Linux 확장 파일 속성 나열):
lsattr
lsattr -a # to include hidden files like with ls
답변2
디렉토리 내용 목록만 원하는 경우:
find . -maxdepth 1
또는 다른 디렉토리:
find <dir> -maxdepth 1