ll -d */가 추가 슬래시를 생성하는 이유는 무엇입니까?

ll -d */가 추가 슬래시를 생성하는 이유는 무엇입니까?

이 명령은 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 "$@"
}

관련 정보