디렉토리의 심볼릭 링크에 슬래시 (/)를 포함시켜야합니까? ls -lI ln -s dir또는

디렉토리에 대한 심볼릭 링크는 ls -lI ln -s dir또는 에 따라 다른 결과를 제공합니다 ln -s dir/. 그러나 실제 차이점은 무엇이며 어떤 이유를 선호해야합니까?



답변

차이가 없습니다. 대상이 기존 디렉토리가 아닌 경우 차이가 있습니다.

쉘 완료로 인해 최종 슬래시가 발생했을 수 있습니다. 일부 구성에서는으로 ln -s tarTabSpacelink완료됩니다 ln -s target/ link.


답변

내가 생각할 수있는 유일한 것은 디렉토리를 삭제하고 파일을 만드는 누군가로부터 당신을 “보호”한다는 것입니다.

[user@host linktest]$ mkdir test
[user@host linktest]$ ln -s test/ slash
[user@host linktest]$ ln -s test noslash
[user@host linktest]$ ls -l
total 4
lrwxrwxrwx 1 paul paul    4 Feb 21 21:00 noslash -> test
lrwxrwxrwx 1 paul paul    5 Feb 21 21:00 slash -> test/
drwxrwxr-x 2 paul paul 4096 Feb 21 20:59 test
[user@host linktest]$ file *slash
noslash: symbolic link to `test'
slash: symbolic link to `test/'
[user@host linktest]$ rmdir test
[user@host linktest]$ file *slash
noslash: broken symbolic link to `test'
slash: broken symbolic link to `test/'
[user@host linktest]$ touch test
[user@host linktest]$ file *slash
noslash: symbolic link to `test'
slash: broken symbolic link to `test/'
[user@host linktest]$

대상을 파일로 바꾸면 슬래시가있는 버전이 중단됩니다.


답변

흥미로운 질문. 나는 작은 테스트를했다 :

$ mkdir dir
$ ln -s dir/ test_slash
$ ln -s dir test_noslash
$ ls -l
total 4
drwxr-xr-x 2 vrusinov vrusinov 4096 Feb 21 16:41 dir
lrwxrwxrwx 1 vrusinov vrusinov    3 Feb 21 16:41 test_noslash -> dir
lrwxrwxrwx 1 vrusinov vrusinov    4 Feb 21 16:41 test_slash -> dir/
$ strace ls test_slash 2> trace_slash
$ strace ls test_noslash 2> trace_noslash
$ wc -l trace_*
   79 trace_noslash
   79 trace_slash
$ diff -u trace_* | less

보시다시피, 시스템 호출 수에는 차이가 없으며 (적어도 ls) 트레이스는 매우 유사합니다. Howewer, 이것은 단지 덤프 테스트이며 확실하지 않습니다-약간의 차이가있을 수 있습니다.


답변

귀하의 질문은 실제로 ls프로그램 의 행동에 관한 것 입니다.

1) ls -l $dir$ dir이 실제로 심볼릭 링크 인 경우 심볼릭 링크에 대한 정보를 얻습니다.

2) ls -lL $dir$ dir이 디렉토리에 대한 심볼릭 링크 인 경우 대상 디렉토리에 대한 정보를 얻습니다.

3) 그렇게 ls -l $dir/.하면 symlink를 따르고 대상 디렉토리에 대한 정보를 제공합니다.

4) 할 경우 사용중인 ls -l $dir/버전에 따라 결과가 # 1과 같거나 # 3과 같을 수 있습니다 ls. 나는 # 1처럼 솔라리스의 구버전에 익숙했고 리눅스가 # 3처럼하는 것에 놀랐다.

그리고 나는 왜 어느 것을 선호해야합니까?

제공 디렉토리 이름이 실제 디렉토리인지 디렉토리에 대한 심볼릭 링크인지에 대해 우려 할 경우 슬래시없이

디렉토리 자체가 아닌 디렉토리의 파일에 더 관심이있는 경우 슬래시를 사용하십시오.