입력할 때 ls -la
현재 디렉토리에 있는 파일 목록을 얻습니다. 여기서 심볼릭 링크에는 대상 파일도 인쇄됩니다.
기호 링크를 표시할 때 쉘은 기호 링크 자체의 특성(특히 날짜)을 인쇄합니다.
대상 속성을 인쇄하는 옵션이 있습니까?
답변1
-dLl
ls에 옵션을 추가합니다.
-L
쇼 타겟을 말해주세요 ls
. -d
디렉토리에 들어가지 않도록 지시합니다(파일이 디렉토리인 경우에만 차이가 있습니다). -l
긴 목록을 만든다고 합니다(상세하게).
답변2
대부분의 시스템 호출과 애플리케이션은 심볼릭 링크 경로가 제공되면 심볼릭 링크의 대상에서 작업을 수행합니다. 주목할만한 예외는 파일이 아닌 디렉토리 항목(예: unlink()
/ rm
, link()
// )에서 symlink()
작동하는 예외 입니다 ln
.
파일 메타데이터 정보를 얻는 데에는 두 가지 별도의 시스템 호출이 있습니다: ( lstat()
기호 링크 자체에서 작동), stat()
(기호 링크 대상에서 작동). Linux의 최신 버전에는 플래그 statx()
가 함께 제공됩니다 AT_SYMLINK_NOFOLLOW
. 확장된 속성에 대해서는 listxattr()
/ llistxattr()
, getxattr()
/ 도 참조하세요 .lgetxattr()
이를 래핑하는 유틸리티의 경우 기본값은 유틸리티에 따라 다르며 작동 모드를 변경하는 옵션(있는 경우)도 구현에 따라 다릅니다.
ls
기본적으로 다음에서 실행됩니다.표적-d
, -l
, -F
, -g
, -o
, 옵션 중 하나라도 전달되지 않는 한 인수로 제공된 파일의 -n
경우 기호 링크 자체에서 작동합니다( lstat()
플래그 대신 또는 플래그와 함께 사용됨 stat()
).statx()
AT_SYMLINK_NOFOLLOW
이러한 옵션 중 하나를 사용하고 싶지만 여전히 기호 링크를 따르고 싶다면 이 -H
옵션을 전달할 수 있습니다.
ls -ldH -- "$file"
파일에 대한 정보는 심볼릭 링크가 해결된 후에 보고됩니다.
ls
-L
해결하라고 지시하는 옵션 도 있습니다모두인수로 제공된 파일에 대한 심볼릭 링크뿐만 아니라 심볼릭 링크. 예를 들어, 링크된 디렉토리가 ls -Ll /symlink-to-dir
구문 분석되고 /symlink-to-dir
해당 내용이 나열되며, 그 안에 있는 각 기호 링크에 대해 링크 대상의 정보도 나열됩니다. 또한 재귀가 수행되는 방식에도 영향을 줍니다 -R
.
기타 도구의 경우:
Command | default | change with
----------------------+-----------+--------------
IRIX stat | target | -L
zsh stat | target | -L
GNU stat | symlink | -L
BSD stat | symlink | -L
busybox stat | symlink | -L
AIX istat | target | none
GNU date -r | target | none
GNU find -printf | symlink | -follow/-L/-H
Linux attr | symlink | -L
Linux getfattr | target | -h
Linux getfacl | target | -P
특정 수정 시간의 몇 가지 예:
$ date -r link +%FT%T.%N%z # GNU date
2020-03-19T17:57:11.277584965+0000
$ zmodload zsh/stat
$ stat -F %FT%T.%N%z +mtime link
2020-03-19T17:57:11.277584965+0000
$ gstat -Lc %y link # GNU stat
2020-03-19 17:57:11.277584965 +0000
$ ls -lHd --full-time link # GNU ls
drwxr-xr-x 23 root root 29 2020-03-19 17:57:11.277584965 +0000 link/
$ find -H link -prune -printf '%TFT%TT%Tz\n' # GNU find
2020-03-19T17:57:11.2775849650+0000