일부 파일을 압축하고 명령을 사용하여 압축 파일을 다른 디렉터리로 이동한 mv
다음 원래 위치에서 모든 파일을 삭제해야 합니다. 그런데 제 경우에는 rm
명령이 실행되기 전에 명령이 실행되어 명령이 mv
실패했습니다.mv
다음을 시도했지만 도움이 되지 않았습니다.
방법 1:
$ zip -r foo.zip * &; wait %1 && mv foo.zip mydir &; wait %1 && rm -rf *
방법 2:
[ zip -r foo.zip *] || {mv foo.zip mydir && rm -rf *}
답변1
당신은 일을 복잡하게 만듭니다.
zip
종료 시 종료 상태에 성공 또는 실패가 반영되는 경우 간단히 다음을 수행할 수 있습니다.
$ zip -r foo.zip . && mv foo.zip mydir && rm -rf *
그러나 나는 mydir
그것이 현재 디렉토리에 있지 않기를 정말로 원합니다. 그렇지 않으면 rm -rf *
. 일반적으로 사용할 때 마지막에 다른 것을 추가하기 rm -rf
전에 두세 번 생각합니다 ! *
! 사실, 나는 rm -rf *
작년에 이 일을 한 횟수를 한 손으로 셀 수 있습니다( ). 나는 그것을 대본에 넣지 않을 것입니다.
더 안전한 접근 방식( mydir
실제로 현재 디렉터리가 아닌 다른 경로에 대한 경로라고 가정):
$ zip -r --move --test foo.zip . && mv foo.zip mydir
심지어
$ zip -r --move --test mydir/foo.zip .
.
대신 (점) 을 사용하십시오 *
. 이름이 첫 번째 문자인 모든 *
파일은 다음과 같은 이름의 파일을 생성하여 명령줄 전환으로 해석됩니다.-
zip
--encrypt
$ touch -- --encrypt
$ zip -r --move --test ../test.zip *
Enter password:
$ rm -- --encrypt