삭제하면 안되는 파일을 실수로 삭제했습니다. 앞으로는 내 파일을 보호하기 위해 일종의 안전망을 구현하고 싶습니다.
rm *
터미널에 뭔가를 입력 할 때마다 모든 파일을 삭제할 것인지 묻고 싶습니다 . 어떤 팁이 있나요?
답변1
유형
rm *
그 자체로 경보 벨이 울려야 합니다. 이것은 때때로 실행해야 하는 완전히 합법적인 명령이지만 실행하기 전에 *
삭제하려는 파일 이름과 일치하는 올바른 디렉터리에 있는지 확인해야 합니다(현재 디렉터리를 프롬프트의 일부로 만들 수 있습니까?). 파일 (를 사용하여 확인할 수 있음 echo *
) 등
거기예-i
rm
파일을 삭제하기 전에 확인을 요청하는 옵션을 사용할 수 있습니다 . 만들다별명시간 rm
이 지남에 따라 rm -i
사람들이 시작한다는 것이 밝혀졌습니다.의지하다이 옵션을 사용하면 별칭이 설정되지 않은 경우 예상치 못한 결과를 초래할 수 있는 어리석은 오류를 포착할 수 있습니다. 따라서 Enter특히 파일을 삭제(또는 덮어쓰거나 자르는) 작업을 실행할 때 를 누르기 전에 생각하는 습관을 갖는 것이 좋습니다 .
또는 잃어버리고 싶지 않은 모든 항목을 시간별로 백업해 두세요. restic
또는 오프사이트 백업을 권장합니다 borgbackup
.
답변2
제가 수년간 해왔던 모범 사례는 셸에서 자동 완성을 활성화하고 키를 누르는 것입니다.상표(또는 이 기능이 매핑된 키) 해당 키를 누르면 * 파일이 확장되는 것을 볼 수 있습니다.
또한 다음과 같이 rm 별칭을 추가했습니다.
alias rm='nocorrect rm -Iv'
잘못된내 쉘 Zsh에 rm을 입력하면 가끔 중복되는 자동 수정 메시지가 기본적으로 무시됩니다. 다음과 같은 파일이 있다고 가정합니다.레미현재 디렉터리에 있거나 다음과 같은 디렉터리가 있습니다.레미, Noright가 이 문제를 처리할 것입니다.
-나rm이 3개 이상의 파일을 삭제하거나 디렉토리를 반복적으로 삭제할 때 프롬프트로 사용됩니다.
- -V자세한 내용은 rm이 무엇을 제거하는지 확인하기 위해 이 작업을 취소하고 싶을 수도 있습니다.Ctrl-c) 어떤 이유로 잘못된 파일을 삭제한 경우. 자주 사용하지는 않지만 과정을 보니 반갑습니다.
답변3
tcsh
쉘을 사용하는 경우 rmstar
이에 대한 변수를 설정할 수 있습니다.
tcsh> set rmstar
tcsh> touch file
tcsh> rm *
Do you really want to delete all files? [N/y]
하지만 이는 다음에는 적용되지 않습니다.
tcsh> rm ./*
tcsh>
안타깝게도 그게 rm ./*
바로 당신이 해야 할 일입니다. rm *
로 끝나는 이름이 있으면 안전하지 않습니다 -
.
zsh
이 기능은 조정 및 개선되어 tcsh
기본값으로 설정되었습니다.
zsh$ rm ./*
zsh: sure you want to delete the only file in /home/chazelas/. [yn]?
zsh$ rm foo /*
zsh: sure you want to delete all 33 files in / [yn]?
(이런 경우가 있으니 주의하세요.앞으로 rm
참여하기도 합니다. 위의 내용은 )을 누르기 전까지 foo
삭제되지 않습니다 y
.
당신은 그것을 비활성화 할 수 있습니다
set -o rmstarsilent
rmstarwait
트리거링을 선호하는 사용자를 위한 옵션도 있습니다.
RM_STAR_WAIT
:'rm'을 실행하기 전에 사용자에게 쿼리하면' 또는 'rm 경로/'라는 메시지가 표시되면 먼저 10초 동안 기다렸다가 이 시간 동안 입력된 내용을 모두 무시하세요. 이렇게 하면 사람들이 의도하지 않았을 때 반사적으로 "예"라고 대답하는 문제를 피할 수 있습니다. ZLE에서 "*"(탭 포함)을 확장하면 대기 및 쿼리를 항상 피할 수 있습니다.
이 검사를 우회하는 또 다른 방법은 를 사용하는 것입니다 rm ./**
.
답변4
"rm -i"를 사용하는 습관을 들이세요. 꼭 필요한 경우가 아니면 눈을 뜨고 사용하지 마십시오.