상위 디렉토리가 심볼릭 링크라는 사실을 ls가 나에게 경고하도록 하려면 어떻게 해야 합니까?

상위 디렉토리가 심볼릭 링크라는 사실을 ls가 나에게 경고하도록 하려면 어떻게 해야 합니까?

방금 내가 (혹은 리눅스를 처음 접하시는 분들)은 사용자가 중복된 파일이라고 생각하여 실수로 rm 파일을 삭제할 수 있습니다. 다음 두 개의 바이너리가 있다고 가정해 보겠습니다.

[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2*
[xiaobai@xiaobai note]$ ls -larthi /usr/bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /usr/bin/seltr2*

보통 아이노드가 같은지 안보고 오른쪽만 보는데-> 로고아니면. 따라서 /bin이 /usr/bin에 대한 심볼릭 링크인 경우 문제가 발생합니다.

[xiaobai@xiaobai note]$ ls -larthi /bin
16 lrwxrwxrwx. 1 root root 7 Nov 18  2014 /bin -> usr/bin/

따라서 사용자가 파일이 심볼릭 링크가 아니고 차이가 없다고 생각하면 사용자는 파일을 rm할 수 있습니다.

[xiaobai@xiaobai note]$ sudo rm /bin/seltr2

마침내 /usr/bin/seltr2가 동일한 파일이라는 것을 깨닫고 구조를 요청했습니다.

[xiaobai@xiaobai note]$ ls /usr/bin/seltr2
/home/xiaobai/ls: cannot access /usr/bin/seltr2: No such file or directory

그럼 간단한 방법은 없나요ls는 상위 디렉토리가 심볼릭 링크임을 고려합니다.,예를 들어:

[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2* -> /usr/bin/seltr2*

나는 항상 inode 번호를 보지 않습니다. 이러한 잠재적인 오류를 방지하는 더 좋은 방법이 있습니까?

답변1

루트 권한이 없는 일반 사용자에 대해 동의합니다.

의견을 보내주셔서 감사합니다. 이제 문제를 이해했습니다. 기사를 다시 편집했습니다.

root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov  4 12:01 ..
-rw-r--r-- 1 root root    0 Nov  4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov  4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
lrwxrwxrwx 1 root root 13 Nov  4 12:03 /usr/bin/test-dir-link -> /bin/test-dir
root@host:~# rm /usr/bin/test-dir-link
root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov  4 12:01 ..
-rw-r--r-- 1 root root    0 Nov  4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov  4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
ls: cannot access /usr/bin/test-dir-link: No such file or directory

위에서 볼 수 있듯이 "symlink"만 제거되었지만 "target"은 제거되지 않았습니다.

또한 파일에 오타가 있는 것 같습니다.귀하의 심볼릭 링크는 "usr/bin"을 가리키지만 "/usr/bin"이어야 합니다.

이것이 말이 되기를 바라나요?

관련 정보