문제

기본적으로 나는 다음을 원합니다.

ls -l[+someflags]

(또는 다른 수단으로) 상징적 링크 인 파일 만 표시 할 수 있습니다.

그래서 출력이 보일 것입니다

-rw-r--r--  1 username grp   size date-time    filename -> somedir
-rw-r--r--  1 username grp   size date-time    filename2 -> somsdfsdf

등.

예를 들어,

디렉토리 만 표시하려면 별칭이 있습니다.

alias  lsd  'ls -l | grep ^d'

숨겨진 파일 또는 숨겨진 디렉토리 만 표시하는 방법이 궁금합니다.

다음 솔루션이 있지만 출력을 색상으로 표시하지 않습니다.

ls -ltra | grep '\->'
도움이 되었습니까?

해결책

디렉토리에서 모든 기호 링크를 찾으십시오.

ls -l `find /usr/bin -maxdepth 1 -type l -print`

숨겨진 파일 목록 :

ls -ald .*

다른 팁

ls -l | grep lrw 

Symlinks (파일 및 디렉토리) 만 표시합니다. 그래도 화려하게 만드는 방법을 잘 모르겠습니다.

ls -lad .* 

숨겨진 파일/디렉토리 만 표시합니다

ls -l | grep drw

디렉토리 만 보여줍니다.

"숨겨진"폴더 - 도트 폴더 만 사용하십시오.

ls -l .**

그렇습니다. 두 개의 별표가 필요합니다. 그렇지 않으면도 얻을 수 있습니다. 그리고 .. 결과에서.

Symlinks의 경우 Symlinks 프로그램을 사용해보십시오.

symlinks -v .

(현재 디렉토리에 모든 Symlinks 표시)

Symlinks 만 표시하고 다음과 같은 링크를 표시합니다.

find -P . -type l -exec echo -n "{} -> " \; -exec readlink {} \;

이 dir로 제한합니다

find -P .  -maxdepth 1 -type l -exec echo -n "{} -> " \; -exec readlink {} \;

예제 출력 (ln -s /usr /bin moo 이후) :

./moo -> /usr/bin

당신은 거의 당신의 Grep 솔루션으로 거기에있었습니다. 다시 색을 입히는 데 집중합시다.

이 시도:

ls --color=always -ltra | grep '->'

@christophed가 제공 한 수락 된 답변에 대해 약간의 개선 (평판이 충분하지 않기 때문에 허용 된 답변에 대한 coudnt 댓글)

나는 별칭을 사용합니다

findsymlinks <path> <depth> 

별칭이있는 곳

alias findsymlinks "find \!:1 -maxdepth \!:2 -type l -print | xargs ls -l --color=auto" 

파일 유형 플래그를 시도하고 @을 제거하십시오.

ls -F /home/usr/foo | grep "@" | sed 's/@//'

(t) csh의 경우:

ls --color=always -ltra | grep '\->'

(이것은 단순히입니다 PBR의 대답 그러나 하이픈이 탈출하면서.)

맥 OS X

OSX에서 ls 다르게 작동하므로 이것을 추가하십시오 ~/.cshrc 파일:

setenv CLICOLOR_FORCE 1   # (equivalent of Linux --color=always)

그리고 전화 :

ls -G -ltra | grep '\->'  # (-G is equivalent of ls --color)

Bash의 경우 :
이것은 좋은 출력을 제공합니다.

sl=`find -L /path/to/target -xtype l`; for links in $sl; do ls --color=always -ltra $links; done | sed 's/^/    /'
echo > linklist.found && $(for i in `find /path/to/dir/ -type l`; do echo `ls -d --color=always  $i` `echo " -> "`  $(ls -d --color=always `readlink -f $i`) >> linklist.found; echo >> linklist.found;  done;) && cat linklist.found | more

이것은 나에게 좋습니다. 그러나 당신이 검색 / 파일 시스템 루트를 검색 할 경우 Proc Directory를 생략해야합니다.

사용법 : foo $ 경로

지정되지 않은 경우 현재 경로를 사용합니다.

#!/bin/bash

case "$1" in

    -r)
    find $2 -type l -print | while IFS= read line ; do ls -l --color=always "$line"; done
    ;;

    --help)
    echo 'Usage: foo [-r] [$PATH]'
    echo    
    echo '-r  Recursive'
    ;;


    *)
    ls --color=always -ltra $1 | grep '\->'
esac
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top