주어진 ll
명령의 출력은 다음과 같습니다
#> ll
lrwxrwxrwx ...
소프트 링크의 대상이 "lrwxrwxrwx"의 디렉터리인지 파일인지 확인하는 방법은 무엇입니까?
답변1
-F
ls에 대한 인수를 사용하여 다음을 얻을 수 있습니다.
-F, --classify
append indicator (one of */=>@|) to entries
즉:
# ln -s videos Videos
# ls -l
lrwxrwxrwx. 1 guido guido 6 Jan 23 14:11 videos -> Videos
# ls -lF
lrwxrwxrwx. 1 guido guido 6 Jan 23 14:11 videos -> Videos/
어쨌든 다음과 같이 디렉토리에 대한 심볼릭 링크를 만드는 것이 좋습니다.
# ln -s Videos/ videos
이 경우 정렬 옵션 없이도 후행 슬래시가 표시됩니다.
답변2
ll
(셸 별칭이라고 가정 ) 의 출력에는 ls -l
심볼릭 링크의 모드/권한에 이 정보가 포함되어 있지 않습니다. 리눅스(심볼릭 링크(2)):
The permissions of a symbolic link are irrelevant; the ownership is ignored when following the link, but is checked when removal or renam- ing of the link is requested and the link is in a directory with the sticky bit (S_ISVTX) set.
다른 곳에서 제안된 것 외에도 ls
스크립팅에 적합한 덜 장황한 방법이 있습니다.
file
-L
심볼릭 링크를 따르도록(역참조) 지원 :
$ file /usr/local/bin/xzcat
/usr/local/bin/xzcat: symbolic link to `xz'
$ file -L /usr/local/bin/xzcat
/usr/local/bin/xzcat: ELF 32-bit LSB executable, [...]
$ file /var/adm
/var/adm: symbolic link to `log'
$ file -L /var/adm
/var/adm: directory
이 -L
옵션은 그렇지 않습니다.POSIX그러나 최신 Linux 및 *BSD에서는 작동해야 합니다. 여러 개의 심볼릭 링크를 따라갑니다(그렇지 ls
않습니다). 보다 강력한 사용을 위해 0으로 구분된 파일 이름 file -L -b --mime-type /var/adm
과 같은 다양한 출력 형식도 지원합니다 .-0
GNU는 stat
더 간단합니다:
$ stat -c %F /var/adm
symbolic link
$ stat -L -c %F /var/adm
directory
이 옵션은 파일 유형만 출력됨을 나타내는 -L
for 와 동일한 효과를 갖습니다 file
.-c %F
stat
통계(1)자세한 내용은 매뉴얼 페이지를 참조하세요. *BSD는 stat
GNU와 다르며 stat
형식 문자열도 다릅니다. 대신 사용하십시오 -f %HT
.
답변3
내 생각에 당신이 원하는 것은 다음과 같습니다.
ls -l filename
man
당신의 친구입니다:
man ls