![디렉토리를 복사할 때 이 복합 명령이 오류를 보고하는 이유는 무엇입니까?](https://linux55.com/image/24087/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A5%BC%20%EB%B3%B5%EC%82%AC%ED%95%A0%20%EB%95%8C%20%EC%9D%B4%20%EB%B3%B5%ED%95%A9%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%EB%B3%B4%EA%B3%A0%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
아래와 같이 한 줄에 다음 두 명령을 실행하면:
rm -rf dir ; cp -r dir2 dir
cp가 디렉터리를 생성할 수 없음을 반환할 수 있습니다 dir/subdir
. 파일이 존재합니다.
그러나 이 두 명령을 두 줄로 실행하면 오류가 발생하지 않습니다. 차이점이 무엇인지 알고 싶습니다. 더 중요한 것은 두 줄과 똑같은 효과로 한 줄에 두 명령을 실행하는 방법입니다.
편집 : 나는 그것을 cp -r dir2 dir
.dir
dir2
답변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