동일한 파일 시스템에 있는 두 폴더를 어떻게 병합해야 합니까?

동일한 파일 시스템에 있는 두 폴더를 어떻게 병합해야 합니까?

아래와 같이 두 개의 디렉토리가 있지만 더 많은 파일이 포함되어 있습니다.

folder1/pic1.png
folder1/test/readme.txt

folder2/guest.html
folder2/backup/notes.txt

나는 이 두 가지를 "병합"하여 폴더2의 모든 내용이 폴더1에 들어가고 폴더2가 삭제되도록 하고 싶습니다. 동일한 파일 시스템과 디스크(ext4)에 있습니다. 모든 파일이 고유하다는 것을 알고 있습니다. 여기서 mv가 제대로 작동합니까?

답변1

응, mv여기서 일해

$ mv -i folder2/* folder1/

-i보안을 강화하려면 이 플래그를 참고하세요 .

답변2

이를 위해서는 "rsync" 명령이 유용합니다. 나는 다음과 같은 일을 했습니다:

rsync -PHACcviuma --copy-unsafe-links --exclude="*~"  folder2/  folder1/  &&  rm -fr folder2

모든 플래그는 rsync 매뉴얼 페이지에 문서화되어 있습니다. 기본적으로 rsync는 새 파일을 이전 파일로 바꾸지 않으며 대상에 중복된 파일을 복사하지 않습니다. 그렇지 않으면 콘텐츠를 복사하고 원본 메타데이터(타임스탬프, 권한 등)를 보존합니다.

rsync 프로그램에는 "숨겨진 파일"("."로 시작하는 이름), 백업("~"로 끝나는 등)도 포함되므로 --exclude 옵션을 사용하여 흥미롭지 않은 특정 파일 패턴을 건너뜁니다.

관련 정보