따라서 홈 폴더 (또는 더 정확하게는 쓰기 권한이있는 모든 파일)를 삭제했습니다. 무슨 일이 있었는지
build="build"
...
rm -rf "${build}/"*
...
<do other things with $build>
bash 스크립트에서 더 이상 필요하지 않은 $build
경우 선언과 모든 사용법을 제거합니다 rm
. 배시는 행복하게 확장됩니다 rm -rf /*
. 네.
나는 바보를 느꼈고, 백업을 설치했고, 잃어버린 일을 다시했다. 부끄러운 곳을지나 가려고합니다.
이제 나는 bash 스크립트를 작성하여 그러한 실수가 발생하지 않거나 적어도 덜 가능성이있는 기술이 무엇인지 궁금합니다. 예를 들어, 내가 쓴 적이
FileUtils.rm_rf("#{build}/*")
루비 스크립트에서 통역사는 build
선언되지 않은 것에 대해 불평 했을 것이므로 언어가 나를 보호합니다.
상관 관계 외에도 bash에서 내가 고려한 것 rm
(관련 질문에 대한 많은 답변에서 언급 했듯이 문제가되지 않음) :
rm -rf "./${build}/"*
그것은 내 현재 작업 (Git repo)을 죽였을 것입니다.rm
현재 디렉토리 외부에서 작업 할 때 상호 작용이 필요한 변형 / 매개 변수입니다 . (아무것도 찾을 수 없습니다.) 비슷한 효과.
그런 의미입니까, 아니면 이런 의미에서 "견고한"bash 스크립트를 작성하는 다른 방법이 있습니까?
#! /usr/bin/env ruby
모든 쉘 스크립트의 맨 위에 놓고 bash를 잊어 버려라.)
rm -rf "${build}/*
인용 부호의 위치에 상관 없이 이유가 없습니다.rm -rf "${build}
때문에 같은 일을 할 것입니다f
.