목표가 다음과 같은 한 줄 명령을 실행하는 것입니다.
- 디렉토리
~/Desktop/foo
가 이미 있으면 제거하고 다시 작성 합니다.
- 디렉토리가
~/Desktop/foo
없으면 작성하십시오 .
그런 다음 다음을 사용할 수 있습니다.
rm -r ~/Desktop/foo; mkdir ~/Desktop/foo
;
개행과 동일하지만 한 줄에서 여러 명령을 실행할 수 있습니다 (예 : "단일 명령").
- 제거하는 디렉토리에 읽기 전용 파일이 포함되어
-f
있으면 대화식으로 사용자에게 프롬프트하지 않고 제거 할 플래그가 필요합니다 . 괜찮습니다.하지만 특히주의해야 rm -rf ...
합니다. 자세한 내용 man rm
을 참조하십시오.
- 당신이 필요로
rm
하는 명령을 완료 전과 mkdir
명령이 실행을; 이것이 ;
대신 사용하는 이유 입니다 &
. (앞의 명령 &
은 백그라운드에서 비동기 적으로 실행됩니다.)
- 명령이 성공하면
mkdir
명령을 실행 해야 rm
합니다. 이것이 ;
대신 사용하는 이유 입니다||
.
- 명령이 실패하면
mkdir
명령을 실행 해야 rm
합니다 (일반적으로 실패하면 디렉토리가 이미 존재하지 않음을 의미 함). 이것이 ;
대신 사용하는 이유 입니다 &&
.
rm
디렉토리가 이미있는 경우에, 존재하는 경우 명령도 실패 할 수 있습니다 mkdir
명령은 실패합니다,하지만 오류 메시지가 이해하고 위해 중간 단계의 검사를 추가 할 필요 아마 없다 foo
그것을 만들려고하기 전에의 존재.
참조 명령 3.2.3 목록 에서 배쉬 참조 설명서를 에 대한 자세한 내용과 설명은 ;
, &
, ||
, 및 &&
운영.
으로 muru 제안 (그리고 Rinzwind이 정교 ), 나는 당신이 들여다 권장합니까rsync
그것은 당신의 백업 요구를 충족되는지 확인. 이 우분투 rsync 안내서 뿐만 아니라 rsync 문서 페이지 에 유용한 추가 안내서가 있습니다.
mkdir에이 옵션이없는 이유는 무엇입니까?
mkdir
디렉토리를 작성합니다 ( "mk" 는 "make"를 나타냄). 또한 재귀 적으로 디렉토리를 삭제하면 디렉토리의 모든 파일이 나빠질 수 있습니다. 데이터 손실로 이어질 수있는 가장 놀라운 원리를 위반하기 때문입니다 .
rmdir
디렉토리가 아닌 파일이 들어있는 디렉토리조차 제거하지 않습니다. rm
는 파일을 제거 할 것으로 예상 -r
되므로 옵션이 있습니다. 즉, rm
그 목적으로 인해 고유 한 위험이 직관적이며 사용자는 일반적으로 rm
명령을 실행할 때주의해야합니다 .
foo
모든 내용을 삭제하는 것처럼 교체 하시겠습니까? 디렉토리가 존재하는지 무시mkdir
하는-p
옵션이 있습니다.