디렉토리를 복사할 때 이 복합 명령이 오류를 보고하는 이유는 무엇입니까?

디렉토리를 복사할 때 이 복합 명령이 오류를 보고하는 이유는 무엇입니까?

아래와 같이 한 줄에 다음 두 명령을 실행하면:

rm -rf dir ; cp -r dir2 dir

cp가 디렉터리를 생성할 수 없음을 반환할 수 있습니다 dir/subdir. 파일이 존재합니다.

그러나 이 두 명령을 두 줄로 실행하면 오류가 발생하지 않습니다. 차이점이 무엇인지 알고 싶습니다. 더 중요한 것은 두 줄과 똑같은 효과로 한 줄에 두 명령을 실행하는 방법입니다.

편집 : 나는 그것을 cp -r dir2 dir.dirdir2

답변1

설명이 필요 없는 솔루션

100% 확실하진 않아요이런 일이 발생합니다. 비록 이것이 Bash가 다음으로 인수를 확장하는 방법이나 시기와 관련이 있다고 의심됩니다.CP. 그러나 수정하기 쉽습니다. -a 플래그만 추가하면 됩니다. 예를 들어:

rm -rf dir; cp -a dir2 dir

이것은 내 시스템에서 잘 작동하며 오류가 보고되지 않습니다. 증거로:

$ set -x; rm -rf dir; cp -a dir2 dir; ls
+ rm -rf dir
+ cp -a dir2 dir
dir  dir2

관련 정보