cp -u
내용이 다른 경우에만 복사를 사용하는 방법 , 다음을 수행하면 실패합니다.
$ cd /tmp/exper ; cp -v ~/Downloads/C/test.c . ; sudo chmod -R 777 .
/home/budi/Downloads/C/test.c -> 'test.c'
$ cp -v -u test.c ~/Downloads/C
'test.c' -> '/home/budi/Downloads/C/test.c
내용은 동일하지만sudo chmod -R 777 .
이를 올바르게 수행하는 방법은 무엇입니까?
답변1
cd /tmp/exper ; cp -v ~/Downloads/C/test.c .
cp -u
내용은 전혀 확인하지 마세요!
그것은 확인한다마지막 수정 날짜. 원본 파일( ~/Downloads/C/test.c
)이 대상 파일( )보다 최신인 경우 /tmp/exper/test.c
에만 복사가 발생합니다 .
(그런데 표시되는 명령은 붙여넣은 출력과 일치하지 않습니다. 그리고 sudo chmod -R 777 .
거기에서 수행되는 작업이 명확하지 않습니다.)
cp
하지만 여기에는 문제가 없습니다. 인쇄되었다는 사실 sourcefile -> targetfile
이 파일이 인쇄되었다는 의미는 아닙니다.가지다복사됐어, 방금 복사됐어복사를 고려해보세요.
답변2
@MarcusMüller가 지적했듯이 cp -u
내용이 아닌 파일 수정 날짜를 확인하고 소스가 대상보다 최신이거나 대상이 존재하지 않는 경우에만 복사하십시오.
'A' -> 'foobar/A'
이렇게 하면 \cp -uv A foobar/
다음 사실의 사본을 얻게 됩니다.일어났다. 이는 Debian 시리즈 시스템의 정상적인 동작입니다.의심하다대부분의 다른 Linux 배포판에서(BSD와 OSX에서는 동작이 다를 수 있음) 그렇다면 왜 이런 결과가 나오는 걸까요?
그렇게 하면 \cp -uv A foobar/
새로 생성되거나 복사된 foobar/A
콘텐츠가 .보다 작기 때문에 A
역방향 복사 작업을 수행하기로 결정하면 \cp -uv foobar/A .
복사가 매우 정상적으로 진행됩니다.