아래와 같이 한 줄에 다음 두 명령을 실행하면:
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