다른 파일 만 변경하여 다른 디렉토리에 (큰) 디렉토리를 복사하려면 어떻게해야합니까?


14

디렉토리 a와 디렉토리 b가 있습니다. 그들은 크다. b는 a와 거의 동일합니다. "거의"는 4-5 개의 파일이 다르며 파일이 무엇인지 모릅니다. b를 a에 복사하고 싶지만 다른 파일 만 복사하고 싶습니다. 나는 bash에있다.

(아니요, 단순히 a를 삭제하고 b로 대체 할 수는 없습니다. 1) a 버전 관리 2) 전체 사본 (또는 mv)이 너무 많이 걸릴 것입니다. 다른 파일 만 복사하고 싶습니다).


rsync옵션은?
Bobby

그러나 rsync에 대해서는 많이 알지 못합니다.
janesconference 2012

답변:


17

당신 rsync이 이것을 할 수 있습니다 , 내가 사용하는 명령은rsync -tr "folder to copy from" "folder to copy to"

예 : rsync -tr /home/me/stuff/* /home/me/otherstuff/


1
이 명령에 유의하십시오. 다르지 않은 모든 파일을 삭제합니다. 나는 그것을 실행했고 거의 모든 것을 잃었다!!
Arvind K.

@ Arvind 나는 당신이 어떤 명령을 사용하여 데이터를 잃어 버렸는지 알지 못하지만 rsync -tr은 아니었다. 매뉴얼 페이지를 읽으십시오.
Tog

18

좋은 옛날로 이것을 할 수도 있습니다 cp:

나를 사용하도록 상기시켜주는 srcspider에게 감사합니다 -T!

cp -ruT old-dir new-dir


+1 여러 머신에서 동기화하는 데 익숙해 져서 우아한 방법을 잊었습니다.
Tog

나를 위해 작동하지 않습니다 :(
janesconference

실제로 gnu cp가 좋습니다. ;-)
Keith

1
OS X에는 -u 옵션이 없습니다. 날짜를 비교할 필요가 없으므로 cp -r old-dir new-dir을 사용했습니다.
Jean-François Beauchamp

작동하지 않습니다. 이것이 이름 규칙인지 확실하지 않지만 cp -ru folder-A folder-B는 단순히 폴더 A를 폴더 B 안에 복사합니다.
srcspider 2016 년

1

또 다른 좋은 옵션은 Unison ( http://www.cis.upenn.edu/~bcpierce/unison/ )이며, 특히 실제로 "소스"와 "대상"이없는 경우입니다. 각 디렉토리는 루트이며 Unison은이를 동기화하고 향후 동기화를 위해 메타 데이터를 유지합니다. cron을 통해 쉽게 예약 할 수있는 명령 줄과 GUI 옵션을 모두 제공합니다.

Dropbox 클라이언트를 실행할 수없는 로컬 NAS 기기에 Dropbox를 백업하는 데 사용합니다.


1

비록 위에 언급 된 것과 약간 다른 형식이지만, 좋은 ol 'cp로 수행 될 수 있습니다. 내가 한 방법은 다음과 같습니다.

cp -ru --target-directory="destination_path" source_path/*

1

두 디렉토리를 비교할 수 있습니다.

diff -r dir1 dir2

differnet 인 파일 목록이 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.