나는 이것이 ls -l
출력 형식을 변경할 뿐만 아니라 디렉토리 심볼릭 링크가 처리되는 방식도 변경한다는 것을 알았습니다.
> ls /rmn
biweekly.sh daily.sh logs ...
> ls -l /rmn
lrwxrwxrwx 1 root root 18 Feb 11 2011 /rmn -> /root/maintenance/
/rmn
나는 심볼릭 링크에 대한 정보가 아닌 의 내용에 대한 자세한 목록을 얻고 싶습니다 /rmn
.
제가 생각할 수 있는 한 가지 해결책은 다음을 수행하는 셸 함수를 만드는 것입니다.
cd /rmn
ls -l
cd -
하지만 이는 특히 방해가 되기 때문에 너무 구식인 것 같습니다 cd -
. 더 좋은 방법이 있습니까?
(저는 CentOS 2.6.9를 사용하고 있습니다)
답변1
ls에 옵션이 있는지 확인하세요.
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir
follow each command line symbolic link that points to a directory
이것이 도움이 되지 않으면 cd -
다음을 수행하여 혼동을 일으키지 않고 매크로가 작동하도록 할 수 있습니다.
(cd /rmn ; ls -l)
서브쉘에서 실행됩니다.
답변2
이 간단한 질문에 대해 생각하는 것이 왜 그렇게 복잡해야 하는지 잘 이해가 되지 않습니다. 하지만 어쩌면 제가 잘못 이해하고 있는 것일 수도 있습니다. 어쨌든 비슷한 기능이 필요할 때 다음을 사용했습니다.
ls -lL
이것은 내 경우에 효과가 있었습니다. ls
매뉴얼 페이지 에서 :
-L, --dereference
when showing file information for a symbolic link,
show information for the file the link references
rather than for the link itself
/media/stick
예를 들어 USB 스틱의 데이터에 액세스할 수 있는 바로가기를 만들었습니다 . 실제 링크 ls -l /media/stick
가 표시되고ls -lL /media/stick
콘텐츠USB 스틱에.
-H
-L
의 차이점과 내부 작동 방식에 대한 좀 더 심층적인 연구를 거친 후얕은 생각블로그(즐길 수 있는 몇 가지 깔끔한 쉘 스크립팅 팁도 있습니다!)
이는 다음과 같이 지적한다.뉘앙스두 가지 옵션 사이에는 (원본 매뉴얼보다 더 좋습니다!) 다음이 있습니다:
-H
-- 명령줄에서 명시적으로 언급된 링크만 역참조합니다.-L
-- 역참조 링크가 있더라도아니요명령줄에서 언급됨
(이 둘을 합치면단순한일상적인 작업의 경우 일반적으로 출력에 차이가 없어야 합니다. )
또한: 긴 형식(--option
--dereference
), 지나치게 긴 괴물보다 기억하기가 더 쉬울 것입니다 --dereference-command-line-symlink-to-dir
.
답변3
ls -l /rmn/
이것을 할 것인가 아니면
ls -l /rmn/.
그러나 사용 시와 사용하지 않을 때 동작이 달라서는 안 됩니다 -l
. 별칭이 있나요 ls
?