이 명령은 ls -d */
다음과 같이 디렉터리만 나열합니다.
Desktop/ Downloads/ Pictures/ snap/ Videos/
Documents/ Music/ Public/ Templates/
이 명령은 ll -d */
또한 결과를 디렉터리로 제한하지만 추가 슬래시가 추가됩니다.
( ll
별칭입니다 ls -alF
)
drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents//
drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music//
drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public//
drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates//
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos//
명령을 실행하면 ls -ald */
추가된 슬래시가 포함되지 않습니다.
drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents/
drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music/
drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public/
drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates/
drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos/
대신 ls -alFd */
동일한 결과가 반환됩니다.ll -d */
man ls
깃발 에 따르면 -F
--classify append indicator (one of */=>@|) to entries
.
-F
추가된 접미사를 포함하는 필요성이나 가치가 명확하지 않지만 추가 표시기가 설정된 이후 ll -d */
슬래시가 추가된다고 가정합니다 . 즉 /
, 이미 존재하는 경우 다른 접미사를 추가해야 하는 이유는 무엇입니까?
ll -d */
둘째, 추가 디렉토리 없이 디렉토리만 나열하는 방법이 있습니까 /
?
답변1
생성된 파일 목록은 */
셸에서 생성됩니다. 이는 추가된 디렉토리 목록입니다 /
.
$ echo */
Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ snap/ Templates/ Videos/
이는 하나의 유틸리티(셸)에서 생성되어 ls
추가 구문 분석 및 처리를 위해 다른 유틸리티( )로 전달됩니다.
이것이 결과 목록입니다 ls
. 이것이 -d
각 디렉터리로 이동하지 않고 중복된 목록을 선택해야 하는 이유입니다 .
ls에 "-p" 옵션을 추가하면 /
각 디렉터리 뒤에 추가 값이 추가되어 디렉터리임을 나타냅니다.
$ ls -pd */
Desktop// Documents// Downloads// Music// Pictures// Public// snap// Templates// Videos//
ls의 색상 옵션이 활성화된 경우 경로 이름이 한 색상으로 표시되고 /
경로 이름이 다른 색상으로 표시되어야 합니다.
ls 옵션은 -F
옵션과 유사 -p
하지만 다른 문자를 사용하여 다른 유형의 파일(디렉토리뿐만 아니라)을 나타낼 수도 있습니다.이 목록의 각 문자:그들 중 하나*/=>@|
답변2
/를 추가하지 않고 ll -d */만 사용하여 디렉토리를 나열하는 방법이 있습니다.
.bashrc에 다음 함수를 넣으면 "unalias ll"을 실행하거나 .bashrc에서 "alias ll"을 삭제한 후에 적용됩니다.
function ll {
local option=F OPTIND c
while getopts d c; do
case $c in
d) option=$c;;
esac
done; shift "$((OPTIND - 1))"
ls -la -$option "$@"
}