디렉토리 심볼릭 링크를 계속 따라가면서 긴 형식(-l) ls를 사용하는 방법은 무엇입니까?

디렉토리 심볼릭 링크를 계속 따라가면서 긴 형식(-l) ls를 사용하는 방법은 무엇입니까?

나는 이것이 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?

관련 정보