어제이 명령을 실행했는데 테스트 시스템에서 생각했지만 SSH를 통해 연결된 파일 서버였습니다.
sudo rm -rf /tmp/* !(lost+found)
내 터미널 에뮬레이터는 Konsole입니다. 내 시스템은 데비안 7입니다.
의문:
이 명령은 / tmp에있는 파일 이외의 파일을 삭제 했습니까?
답변
bash의 올바른 구문은 다음과 같습니다.
rm /tmp/!(lost+found)
@goldilocks 가 주석에 썼 듯이 원래 명령은 쿼리를 확장합니다 ( /tmp
폴더의 모든 파일을 삭제 한 다음 계속 진행하고 현재 작업 폴더의 모든 파일을 삭제 home
합니다).
일부 데이터를 복구 할 수 있는지 확인할 수 있습니다. 리눅스 데이터 복구에 관한 질문이 있습니다 .
답변
는 !(lost+found)
당신의 rm
명령 아마도 치명적인 실수를했다 :
1978 rm -rf /tmp/* !(lost+found)
1979 sudo rm -rf /tmp/* !(lost+found)
나는 정확히 무엇 bash
을하고 있는지 알지 못하지만 아래 명령은 내 /tmp/
모든 디렉토리와 현재 디렉토리 (현재 ~
) 를 모두 인쇄합니다 .
echo /tmp/* !(lost+found)