rsync -av
점 밑줄( )로 ._example.txt
시작하는 모든 파일을 사용 하되 제외하고 .DS_Store
파일을 무시하는 방법은 무엇입니까?
답변1
당신은 시도 할 수 있습니다--exclude="<filePattern>"
rsync -av --exclude="._*" --exclude=".DS_Store" <source> <destination>
답변2
를 사용하면 이름이 밑줄로 시작하는 모든 파일과 디렉터리가 무시 --exclude='._*'
됩니다 . rsync
를 사용하면 --exclude='.DS_Store'
다른 유형의 파일은 무시됩니다.
답변3
여러 옵션으로 명령줄을 복잡하게 만들지 않고 여러 제외 규칙을 가지려면 제외할 패턴을 나열하는 파일 과 함께 이 옵션을 --exclude
사용할 수 있습니다 .-F
.rsync-filter
-F The -F option is a shorthand for adding two --filter rules to your command. The first time it is used is a shorthand for this rule: --filter='dir-merge /.rsync-filter' This tells rsync to look for per-directory .rsync-filter files that have been sprinkled through the hierarchy and use their rules to filter the files in the transfer.
.rsync-filter
다음은 백업할 폴더의 루트에 있는 파일의 예입니다.
- /temp
- /lost+found
# Windows thumbnails
-p Thumbs.db
# MS Office temporary files
-p ~$*
# common Mac junk
-p .TemporaryItems
-p .DS_Store
-p ._*
p
다음 수정자는 -
"부패 가능"을 의미하며, 이로 인해 rsync가 대상에서 제외된 파일도 삭제하게 됩니다.
답변4
._*
일치하는 파일 및 디렉터리 를 제외하려면 .DS_Store
이전 답변 중 하나로 충분합니다.
rsync -av --exclude='._*' --exclude='.DS_Store' src dst
반면에 질문에 정확히 대답하기 위해 이 코드 조각은 다음 _*
과 일치하는 디렉터리를 포함하면서 기준과 일치하는 파일을 제외합니다 .DS_Store
.
rsync -av --include '.DS_Store/' --include '._*/' --exclude '.DS_Store' --exclude '._*' src dst
실제 사례
# Set up the example directory tree
mkdir -p src/a/.DS_Store src/a/._example.dir dst
touch src/.DS_Store src/._example.txt src/a/.DS_Store/keep src/a/._example.dir/keep src/item src/a/another
# Show what we have
find src -type f
src/.DS_Store
src/._example.txt
src/a/.DS_Store/keep
src/a/._example.dir/keep
src/a/another
src/item
# Copy it. Omit matching files but keep the directories
rsync -av --include '.DS_Store/' --include '._*/' --exclude '.DS_Store' --exclude '._*' src/ dst
sending incremental file list
./
item
a/
a/another
a/.DS_Store/
a/.DS_Store/keep
a/._example.dir/
a/._example.dir/keep
# Tidy up
rm -rf src dst