다음 파일을 삭제하는 방법은 무엇입니까?
srwxrwxrwx 1 patroh root 0 Aug 8 16:11 0=
사용자는 patroh
바로 나 자신이다. 명령 rm
이 작동하지 않습니다. 실행할 때 오류가 발생하지 않습니다 rm 0
.
이 파일을 어떻게 생성했는지 잘 모르겠습니다.
답변1
출력에서 줄 시작 부분 s
에 있는 는 ls -l
해당 줄을 Unix 도메인 소켓으로 식별합니다. 마지막은 추가된 표시 =
자인 소켓의 유형 표시자입니다 ls -F
. 따라서 파일 자체는 0
.
Unix 소켓은 대부분 실제 네트워크 소켓처럼 작동하지만 파일 시스템에 이름이 있는 프로세스 간 통신의 특별한 방법으로, 공통 파일 시스템 액세스 제어를 소켓에 적용할 수 있습니다. 당신이 가지고 있는 그 "파일"이 바로 그런 이름입니다.
소켓 의사 파일은 조심스럽게 제거하기 위한 조치를 취하지 않는 한 해당 파일을 연 프로세스가 종료된 후에도 계속 머무르는(쓸모 없는) 경향이 있습니다. 하지만 다른 파일처럼 삭제할 수 있습니다. (적어도 Linux에서는 그렇습니다.) 예를 들어 nc
Unix 소켓을 생성하고 rm
삭제합니다.
$ nc -U -l socket &
[1] 22480
$ ls -l
total 0
srwxr-x--- 1 ilkkachu ilkkachu 0 Aug 10 00:45 socket=
$ rm socket
$ ls -l
total 0
$ kill %1
오류가 발생 하지 않으면 rm
파일을 삭제할 수 있다는 의미입니다. 물론 나중에 파일이 다시 생성되는 것을 막지는 못합니다.