답변:
매뉴얼 페이지 에서 가져온 것 :
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
예:
cp -n myoldfile.txt mycopiedfile.txt
cp -n source.txt destination.txt || true
cp -n
파일이 Ubuntu 12.04에 있으면 @galenandrew 가 오류와 함께 종료되지 않습니다.
사용을 고려하십시오 rsync
.
rsync -a -v --ignore-existing src dst
의견 rsync -a -v src dst
에 따르면 기존 파일을 업데이트하므로 정확하지 않습니다.
--ignore-existing
기존 파일을 덮어 쓰지 않도록 플래그 를 추가하려고합니다 .
rsync -a -v --ignore-existing <src> <dst>
은 실제로 cp -u
위 대신 정답 입니다.
이것은 RedHat에서 작동합니다.
false | cp -i source destination 2>/dev/null
업데이트 및 덮어 쓰기를하지 않는 것은 뭔가 다르다.
false
여기합니까?
-i
질문에 답변 합니다.
'n'옵션 (RedHat에서 나와 같은)이 cp -u
없는 사람들은 소스가 기존 파일보다 최신이거나 기존 파일이없는 경우에만 파일을 작성하는 데 사용할 수 있습니다 .
주석에서 언급했듯이 이것은 오래된 파일을 덮어 쓰므로 OP가 원하는 것이 아닙니다. ceving의 대답을 사용하십시오.
-u
실제로 목적에 맞지 않습니다.
일부 cp 버전에는 --no-clobber 옵션 이 없습니다 . 이 경우 :
echo n | cp -vipr src/* dst