상위 디렉토리에 대해 나에게 경고하는 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*

일반적으로 나는 inode를 보지 않고 오른쪽만 봅니다.-> 서명하다아니면. 따라서 /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"이어야 합니다.

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

관련 정보