cp -Tr 재정의 동작

cp -Tr 재정의 동작

GNU coreutils를 사용하고 있습니다

foo파일 file1bar.file2

이제 를 실행하면 cp -rT foo bar맨 페이지에서 믿게 될 수 있으므로 bar에는 덮어쓰는 대신 두 파일이 모두 포함됩니다.

나는 "bar"가 병합되지 않고 "foo"의 내용만 포함하기를 원합니다.

답변1

GNU의 경우 cp-T옵션은 소스 디렉터리가 다음 위치에 배치되지 않도록 하는 데 사용됩니다.~에대상 디렉토리. 대상 디렉터리의 내용은 삭제되지 않습니다.

this()에 대한 정보 문서는 info '(coreutils)Target directory'다음과 같이 말합니다(예로 사용됨 mv).

-T

--no-target-directory

마지막 피연산자가 디렉토리이거나 디렉토리에 대한 기호 링크인 경우 특별한 처리가 제공되지 않습니다. 이는 공유 영역에서 실행되는 프로그램의 경쟁 조건을 방지하는 데 도움이 됩니다. 예를 들어, 명령이 mv /tmp/source /tmp/dest성공하더라도 이름이 다음으로 변경된다는 보장은 없습니다 /tmp/source. 다른 프로세스에서 디렉터리를 생성한 경우 /tmp/dest이름이 변경되었을 수 있습니다. 하지만 성공한다면 이름을 바꾸는 데에는 문제가 없을 것이다./tmp/dest/source/tmp/destmv -T /tmp/source /tmp/dest/tmp/source/tmp/dest

mv -T source dest비어 있지 않으면 실패합니다 .dest


의 내용을 예제의 내용 bar으로 바꾸려면 다음을 사용하십시오.foo

rm -rf bar
cp -r foo bar

또는,

rsync --archive --delete foo/ bar

관련 정보