OSx에서 한 디렉토리의 파일을 빠르게 복사하기 위해 rsync를 스크립팅하려고합니다. 포함 및 제외 옵션에 문제가 있습니다. 예를 들어 내가 복사 할 디렉토리입니다 : 내가 처음에 그냥 캐시 디렉토리를 동기화 할 rsync를 사용했다Rsync 포함, 제외 및 필터링
$HOME/Library/Dir1/RandomDir/cache/
그러나 OSX 소스 경로에 와일드 카드를 사용하지 않았다. 내가 사용하던 명령했다 :
rsync -avP "$HOME/Library/Dir1/*/cache/" Dest/Dir
나는있는 Dir1의 문자 침투을 찾고 있었기 때문에 OSX 디렉토리를 찾을 수 없습니다이 명령을 실행 할 때/* /와 *는 와일드 카드로 치료를 받고되지 않았습니다 .
다음으로 --include와 --exclude 옵션을 구현하려고 시도했지만이 작업을 수행 할 수 없었습니다. 나는 단지 캐시 디렉토리를 복사하지 않습니다이 명령을 실행하면 내가
rsync -avP --include="*/" --include="cache/" --exclude"*" $HOME/Library/Dir1/ Dest/Dir/
을 사용했다
. rsync는 include와 exclude를 순서대로 제외 시키므로, rsync는 Dir1 디렉토리 아래에있는 모든 것을 포함하고 (와일드 카드 문제를 해결 함), 캐시 디렉토리 만 포함하면됩니다. 다른 모든 것을 제외 할 것입니다. 필자는 복사본 전체에 파일 속성과 타임 스탬프를 보관하는 아카이브 기능에 rsync를 사용하려고합니다.
아무도 내가 여기에서 잘못 가고 있다고 말할 수 있습니까? 예를 들어, --include = "/cache"및 --exclude = "/*"과 같은 여러 가지 변종을 시도했지만 지금까지는 아무 것도 시도하지 않았습니다. 전혀 도움이된다면 크게 감사하겠습니다. 고맙습니다.
스크립트, Automator 스크립트 또는 콘솔에서 rsync를 실행하고 있습니까? 콘솔은'$ HOME/Library/Dir1/*/cache /'부분을 올바르게 확장해야하지만, 예를 들어 Automator는 그렇지 않을 수도 있습니다. – Janek
고맙습니다. 나는 Automator를 사용하고 있다고 생각하지 않지만 정말로 익숙하지 않다. 나는 bash 스크립트를 만들고 파일에 .command 파일 확장자를 지정했다. OSx에서 이것을 클릭하면 터미널 창을 열고 명령을 실행합니다. 이것이 Automator를 사용하고 있습니까? – user7376266