정규식과 일치하는 파일이 포함된 모든 디렉터리를 복사/백업합니다.

정규식과 일치하는 파일이 포함된 모든 디렉터리를 복사/백업합니다.

dir 구조를 반복적으로 반복하여 이름이 특정 정규식과 일치하는 파일 디렉터리만 가져오는 백업을 만들고 싶습니다. 일치하는 항목이 있으면 디렉터리 구조를 보존하고 싶습니다.

~/dir1/dir2/regexpmatch.txt

대상에 동일한 디렉토리 구조를 생성하고 파일을 다음 위치에 복사합니다.

/media/backup/dir1/dir2/regexpmatch.txt

rsync를 사용하는 것이 가장 좋지만, 불가능하다면 다른 프로그램을 사용하세요.

답변1

find와 합치면 어떨까요 tar? 모든 파일을 찾는 예 .c:

find . -type f -name '*.c' -print | tar zcf backup.tar.gz -T -

답변2

다음과 같이 및 명령을 결합해야 합니다 find.rsync

find . -regex .*X | rsync --files-from=- ./ b/

사용 예:

$ find b/
b/
b/a
b/a/dX
b/a/cX
$ find a/
a/
a/dX
a/cX
a/b
$ rm -rf b
$ find . -regex .*X | rsync --files-from=- ./ b/
$ find b/
b/
b/a
b/a/dX
b/a/cX

여기서는 정규식과 일치하는 파일만 복사합니다 .*X.

답변3

rsync 매뉴얼 페이지에서:

Here s  an  example that copies all .pdf files in a hierarchy, only creating
the necessary destination directories to hold the .pdf  files,  and  ensures
that  any  superfluous  files and directories in the destination are removed
(note the hide filter of non-directories being used instead of an exclude):

rsync -avm --del --include= *.pdf  -f  hide,! */  src/ dest

If you didn t want to remove superfluous destination files, the  more  time-
honored  options  of "--include= */  --exclude= * " would work fine in place
of the hide-filter (if that is more natural to you).

관련 정보