답변:
command grep
와 함께 사용 ls
하면 현재 디렉토리에있는 모든 심볼릭 링크를 나열 할 수 있습니다 .
현재 디렉토리에있는 모든 링크가 나열됩니다.
ls -la /var/www/ | grep "\->"
->
"가 포함 된 파일이 있으면 오 탐지를 반환합니다 . 간단한 시도touch "foo->"
grep
안와 ^l
?
alias listlinks='ls -l --color | grep "\->"'
8-)
파싱 ls
은 나쁜 생각입니다 ® , find
이 경우 간단한 것을 선호하십시오 :
find . -type l -ls
현재 디렉토리 만 처리하려면 다음을 수행하십시오.
find . -maxdepth 1 -type l -ls
find: Unknown argument to -type: 1
1
(하나는 아니지만) l
(링크)
find /<your_directory> -maxdepth 1 -type l -ls 2>/dev/null
감사합니다!
-maxdepth 1
.
awk
. u는 아마도 이것을 원할 것입니다 :find . -maxdepth 1 -type l | sort -n
이 ls -la
명령은 모든 파일과 폴더 및 심볼릭 링크 된 디렉토리를 표시합니다.이 명령에 심볼릭 디렉토리가 표시되지 않으면 워드 프레스에 대한 심볼릭 링크가 없음을 의미합니다 .
실행 결과를 참조하십시오 ls -la
:
kasiya@kasiya-pc:~$ cd /sys/devices/platform/sony-laptop
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la
total 0
drwxr-xr-x 3 root root 0 Sep 9 19:57 .
drwxr-xr-x 14 root root 0 Sep 10 2014 ..
-r--r--r-- 1 root root 4096 Sep 9 22:32 battery_care_health
-rw-r--r-- 1 root root 4096 Sep 9 22:32 battery_care_limiter
lrwxrwxrwx 1 root root 0 Sep 9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
-r--r--r-- 1 root root 4096 Sep 9 22:32 modalias
drwxr-xr-x 2 root root 0 Sep 9 22:32 power
lrwxrwxrwx 1 root root 0 Sep 9 22:32 subsystem -> ../../../bus/platform
-rw-r--r-- 1 root root 4096 Sep 9 22:32 touchpad
-rw-r--r-- 1 root root 4096 Sep 9 19:57 uevent
l
권한 플래그를 구걸 할 때 모든 기호 디렉토리에 권한 이 있음을 알 수 있습니다. grep을 사용 ^l
하면 기호 파일 또는 디렉토리 만 나열 할 수 있습니다.
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$ ls -la |grep ^l
lrwxrwxrwx 1 root root 0 Sep 9 19:57 driver -> ../../../bus/platform/drivers/sony-laptop
lrwxrwxrwx 1 root root 0 Sep 9 22:32 subsystem -> ../../../bus/platform
kasiya@kasiya-pc:/sys/devices/platform/sony-laptop$
드라이버 및 서브 시스템 디렉토리는 여기에있는 다른 디렉토리에 대한 심볼릭 링크입니다.
l
그것은 상징적 인 링크입니다.
디렉토리에서 심볼릭 링크를 보려면
터미널을 열고 해당 디렉토리로 이동하십시오.
다음 명령을 입력하십시오 :
ls -la
숨겨져 있어도 디렉토리의 모든 파일을 길게 나열해야합니다.
로 시작하는 파일 l
은 기호 링크 파일입니다.
디렉토리에있는 모든 심볼릭 링크 된 항목 (dirs & fns)을 반환합니다.
find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"
그러나 실제 기호로 연결된 항목 유형을 구별하려면 다음을 수행하십시오.
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1
기호로 연결된 파일 이름 항목 만 반환합니다. 과,
ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1
심볼릭 링크 된 dirname 항목 만 리턴합니다.
유형 ls -lai
, 해당하는 inode 번호를 가진 모든 파일 및 하위 디렉토리를 나열합니다. 동일한 inode 번호를 가진 파일은 링크 (하드 또는 소프트)이며이 솔루션은 기호 링크에도 작동합니다.
ls -lai
파일 및 해당 심볼릭 링크에 대해 동일한 inode 번호를 표시 하지 않습니다 . 하드 링크와 달리 심볼릭 링크에는 별도의 inode 항목이 있습니다. 이것이 어떻게 생겼는지입니다.
파이썬으로도 할 수 있습니다 :
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir
샘플 실행 :
$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime
이것은 os.walk
함수 를 통해 재귀 적으로 확장 될 수 있지만 위에 표시된 것처럼 단일 디렉토리에 링크를 나열하기 위해 간단한 목록 생성을 사용하는 것으로 충분합니다.