루트 파티션의 휴지통은 어디에 있습니까?

루트 파티션의 휴지통은 어디에 있습니까?

나는 종종 trash-put명령줄에서 파일을 삭제합니다. 최근에는 중요한 내용을 실수로 삭제하지 않도록 명령 rm에 별칭을 지정 했습니다.trash-put

그러나 이제 파일 시스템의 일부 공간을 /var/log확보하려면 폴더에서 일부 파일을 삭제 해야 합니다 . /나는 다음을 사용하여 이 작업을 수행합니다 sudo.

sudo rm /var/log/somelog

#Above command is equivalent to: 
sudo trash-put /var/log/somelog

이 작업을 수행한 후에는 파일이 어딘가의 휴지통으로 이동되었기 때문에 파티션에 복구된 여유 공간이 없습니다. 그런데 휴지통을 확인해 보니 파일이 없었습니다. 파티션 .Trash-100에 폴더가 있는지 확인하려고 했는데 /그래도 폴더가 없었습니다.

그렇다면 내 정크 파일은 어디로 가나요? 일부 공간을 복구하기 위해 파괴할 수 있도록 어떻게 찾나요?

답변1

삭제한 파일은 실제로 다른 프로세스에 의해 아직 열려 있을 수 있습니다. 이 경우 프로세스가 해당 파일 핸들을 닫을 때 파일 공간을 사용할 수 있게 됩니다.

다음 명령을 사용하여 이러한 파일을 찾을 수 있습니다 lsof.

lsof |grep "var/log"|grep deleted

답변2

다음을 사용할 때 별칭이 호출되지 않습니다 sudo.

$ alias a=ls
$ sudo a
sudo: a: command not found

이는 이러한 파일이실제로휴지통으로 옮기는 대신 삭제하세요.

예를 들어 파일에 쓰기 위해 파일을 계속 열어 두는 프로세스가 있는 경우 해당 프로세스가 파일을 닫거나 종료할 때까지 파일에 사용된 공간은 회수되지 않습니다.

답변3

~에 따르면쓰레기 배치 맨페이지, 휴지통 넣기는 파일을 휴지통에 넣습니다. 휴지통은 다음에 의해 제어됩니다.FreeDesktop.org 스팸 정책.

장에서정크 디렉토리, 가비지 수집은 다음 백업 프로세스를 따릅니다.

  1. 가정용 쓰레기, 위치 $XDG_DATA_HOME/Trash. 귀하의 경우에는 아마도 /root/Trash루트용일 것입니다. sudo가 통과하고 있을 수도 있으므로 $XDG_DATA_HOME자신의 휴지통에서도 찾아보세요. 그것은주요 쓰레기사용된.
  2. 공유와 동일한 마운트 루트가 아닌 디렉토리의 경우 $XDG_DATA_HOME마운트 디렉토리 상단에 있는 디렉토리의 휴지통을 사용할 수 있습니다.
    1. $topdir/.Trash/$UID먼저 시도해 볼 수 있습니다.
    2. 테스트가 실패하면(예: $topdir/.Trash존재하지 않음) 을 사용하십시오 . 귀하의 경우 UID를 만들 때 $topdir/.Trash-$UID루트에서 찾아보십시오 ./.Trash-0sudo

고쳐 쓰다:

폭식으로 "뿌리 쓰레기"를 먹으면 더 많은 것을 얻었습니다.

~에서아주 오래된 튜토리얼fd.o가 아닌 gksudo nautilus '/root/.Trash/'루트 디렉터리 아래의 디렉터리가 좋은 선택일 수 있다고 언급되었습니다 ..TrashTrash$XDG_DATA_HOME

~에 따르면중국어로 된 아주 오래된 질문질문자를 위해 이동식 디스크가 생성되는 경우 .Trash-root일부 구현에서는 숫자 UID 대신 사용자 이름을 사용합니다.

답변4

의견과 답변에서 지적했듯이 문제는 별칭 확장에 있습니다.

하지만 이에 대한 몇 가지 해결책이 있습니다.

모든 별칭을 사용 하려면 sudo(따라서 @Kusalananda가 지적한 문제를 회피함) 별칭 파일에 다음 별칭을 추가할 수 있습니다.

alias sudo='sudo '

이렇게 하면 예상한 sudo rm대로 확장됩니다 .sudo trash-put

명령의 첫 번째 단어로만 사용되는 별칭에 대한 @Dubu의 의견에 대답하려면 -g별칭 정의에 플래그를 추가하면 전역이 되고 명령 위치에 없을 때에도 작동합니다. 별칭을 사용하여 이 작업을 수행할 수 있습니다 rm. 그러나 다른 나쁜 놀라움을 원하지 않을 수도 있으므로 sudo여기에서는 첫 번째 방법이 더 적합합니다. 파이프된 명령(예: )에 대한 별칭을 설정하려는 경우 alias -g pl='| less'이 명령이 더 적합합니다 .

with 를 사용할 trash-cli때 쓰레기통의 위치 에 대해서는 sudo@Arthur2e5가 그 질문에 대답했습니다. 내 경우에는 위치를 다음과 같이 추가하겠습니다.

/home/.Trash-0

관련 정보