2017-01-05 1 views
-1

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 = "/*"과 같은 여러 가지 변종을 시도했지만 지금까지는 아무 것도 시도하지 않았습니다. 전혀 도움이된다면 크게 감사하겠습니다. 고맙습니다.

+0

스크립트, Automator 스크립트 또는 콘솔에서 rsync를 실행하고 있습니까? 콘솔은'$ HOME/Library/Dir1/*/cache /'부분을 올바르게 확장해야하지만, 예를 들어 Automator는 그렇지 않을 수도 있습니다. – Janek

+0

고맙습니다. 나는 Automator를 사용하고 있다고 생각하지 않지만 정말로 익숙하지 않다. 나는 bash 스크립트를 만들고 파일에 .command 파일 확장자를 지정했다. OSx에서 이것을 클릭하면 터미널 창을 열고 명령을 실행합니다. 이것이 Automator를 사용하고 있습니까? – user7376266

답변

0

마지막으로 내 문제가있는 곳을 찾았습니다. 원본 인용문을 큰 따옴표로 사용하여 *를 리터럴로 해석합니다 ... 어쨌든 고마워요.

관련 문제