파일이 별칭인지 또는 심볼릭 링크인지 어떻게 알 수 있습니까?


13

레거시 시스템에서 작업 중이며 다른 폴더에있는 이미지를 참조하는 많은 파일이 있습니다.

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x133.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x133.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t125x150.jpg -> /home/www/virtual/categories/swm/24/m/00012/t125x150.jpg
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t150x200.jpg -> /home/www/virtual/categories/swm/24/m/00012/t150x200.jpg

이것이 심볼릭 링크 또는 별칭인지 어떻게 알 수 있습니까?


3
심볼릭 링크는 다른 파일을 참조하는 파일 항목입니다. Linux에서 별명은 명령 구문 대체입니다. 별명은 무엇을 의미합니까? 아니면 단순히 어떤 파일이 심볼릭 링크인지 식별하는 방법을 묻고 있습니까? find folder -type l'폴더'아래에 모든 기호 링크가 나열됩니다.
StarNamer

Mac OS X Finder의 별명 또는 쉘 명령 별명에 대해 묻고 있습니까?
Daniel Beck

약간 혼란 스러웠습니다. 문제의 파일은 단지 심볼릭 링크였으며 Os X Finder 별칭과 혼동되고 있다고 생각합니다.
Martin

답변:


16

심볼릭 링크 :

lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
^
 ` Here it is, l for symbolic link.

파일이 하드 링크 인 경우 다른 파일처럼 표시됩니다. 예를 들어 모든 디렉토리에는 .하드 링크 된 디렉토리가 있습니다.

보낸 사람 $ man find:

일반 Unix 파일 시스템의 각 디렉토리에는 최소한 두 개의 하드 링크가 있습니다. 이름과 해당 .' entry. Additionally, its subdirectories (if any) each have a디렉토리에 연결된 .. '항목입니다.

하드 링크 :

-rw-r--r--  3 root root   60 2012-06-25 12:17 File
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile
-rw-r--r--  3 root root   60 2012-06-25 12:17 HardLinkToFile2
lrwxrwxrwx  1 user nobody      56 Feb 10  2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg
            ^
             ` This number is hard link (reference) count.

11

file또는 stat명령 파일이 무엇인지 당신을 말할 것이다 :

$ ln -s /home this_is_a_link
$ touch this_is_not_a_link
$ file this_*
this_is_a_link:     symbolic link to `/home'
this_is_not_a_link: empty
$ stat this_*
  File: `this_is_a_link' -> `/home'
  Size: 5               Blocks: 0          IO Block: 4096   symbolic link
Device: ca00h/51712d    Inode: 106983      Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:17.000000000 +0000
Modify: 2012-07-29 23:28:17.000000000 +0000
Change: 2012-07-29 23:28:17.000000000 +0000
  File: `this_is_not_a_link'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: ca00h/51712d    Inode: 106992      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    andy)   Gid: ( 1000/    andy)
Access: 2012-07-29 23:28:27.000000000 +0000
Modify: 2012-07-29 23:28:27.000000000 +0000
Change: 2012-07-29 23:28:27.000000000 +0000

스크립팅 인 경우 test명령이 더 유용 할 수 있습니다.

   -h FILE
         FILE exists and is a symbolic link (same as -L)
$ for f in this_*; do if test -h "$f"; then echo "$f is a symlink"; else echo "$f is not a symlink"; fi; done
this_is_a_link is a symlink
this_is_not_a_link is not a symlink
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.