command line

홈 폴더 내용 손실: rm의 잘못된 사용

Ubuntu-Mate 20.04를 사용하고 있으며 홈 폴더의 내용을 대부분 잃어버렸습니다. Sudo와 함께 "rm" 명령을 잘못 사용했기 때문일 수 있지만 다른 것일 수 있는지 확실하지 않습니다.

설명합니다: user1(user1은 sudo 권한이 있음)으로 로그인되어 있는 동안 폴더( "targetfolder (something)" )와 /home/user2의 내용을 삭제하려고 했습니다. 그래서 저는 다음과 같이 했습니다.

sudo rm -r /home/user2/targetfolder (something)/ 

처음에 rm은 괄호로 인해 몇 가지 오류 메시지를 표시했습니다. 즉, ( ) - 폴더 이름의 일부를 *로 대체하고 다음을 수행했습니다.

sudo rm -r /home/user2/targetfolder */

참고: 공백( 'targetfolder *' ) 때문에 폴더 이름에 따옴표를 사용했을 수 있지만 터미널에 등록된 마지막 명령에는 따옴표가 없습니다.

내가 알기로는 rm은 user2의 홈 폴더 내에서 "targetfolder"로 시작하는 이름의 폴더만 삭제했어야 했는데 user1의 홈 폴더의 대부분을 삭제한 것 같다. rm이 작동하는지 여부가 확실하지 않기 때문에 터미널 종료를 닫았으므로 프로세스를 추측합니다.

관련된 경우를 대비하여 user1 및 user2 홈 폴더는 모두 ecryptfs를 사용하여 암호화됩니다(/home/user2에서 삭제할 폴더는 .Private 외부에 있으므로 암호화되지 않음).

그래서 내 질문은 내가 사용한 rm 명령이 user1의 홈 폴더 내용을 삭제할 수 있었는지(또는 시스템에 영향을 미칠 수도 있는지)입니다.

최근에 손실된 내용을 백업해 두었는데 rm 명령어 외의 문제로 인한 것이 아닌지 확인하고 싶었습니다.

미리 감사하고 내 영어에 대해 죄송합니다.

This command

sudo rm -r /home/user2/targetfolder */

아마도 존재하지 않았을 폴더 /home/user2/targetfolder 를 삭제한 다음 */ 와 일치하는 항목을 삭제하려고 합니다 . 이는 현재 작업 디렉토리에 존재하는 모든 비숨김 디렉토리(및 그 내용)를 의미합니다. 현재 작업 디렉토리가 user1 의 홈 디렉토리인 경우 예, 영향을 받는 디렉토리입니다.

실수는 공간을 탈출하지 않는 것입니다. 공백은 인수를 구분하는 구분 기호입니다. 여기에서 두 개의 인수( -r 옵션 옆에 있음), /home/user2/targetfolder*/ 를 제공합니다. 여기서 후자는 숨겨지지 않은 모든 하위 디렉터리(예: Documents/ , Videos/ 등 )와 일치하도록 셸에 의해 확장됩니다. )

파일 이름 패턴을 인용하거나 다음과 같이 공백을 이스케이프 처리합니다.

sudo rm -r "/home/user2/targetfolder "*/

or

sudo rm -r /home/user2/targetfolder\ */

/home/user2/targetfolder (something)/ 및 기타 일치하는 폴더(있는 경우 ) 가 포함되었을 것 입니다.

일반적으로 rm -r 을 사용한 다음 sudo 와 함께 사용하는 것은 경험한 대로 매우 위험합니다. 이러한 명령을 즉시 실행하지 말고 먼저 확인하십시오.

  • sudo rm -rls -d 로 대체하십시오 . 그러면 주장에 포함된 모든 항목이 나열되고 사전에 제거할 항목을 확인할 수 있습니다(팁을 제공한 cocomac에게 감사드립니다).
  • ls 에 제거할 항목이 나열 되면 다음을 누르십시오.해당 명령을 호출하고 ls -dsudo rm -r 로 변경 합니다.

단일 디렉토리를 제거해야 하는 경우 와일드카드를 함께 사용하지 마십시오. 탭 완성을 사용합니다. 이렇게 하면 특정 이름이 명령줄에 올바르게 입력되었는지 확인할 수 있습니다.