
대규모 WordPress 웹사이트 마이그레이션을 진행 중인데 원본 이미지만 마이그레이션하고 싶습니다. WordPress에서 생성한 이미지를 복사하고 싶지 않습니다. rsync를 사용하면 문서에서 이미지 크기의 다양한 변형을 설명하고 제외하는 방법을 찾을 수 없습니다. 내가 생각해낸 최선의 방법은 가능한 모든 이미지 크기 시나리오에 대한 규칙을 만드는 것입니다. 이것이 내가 얻을 수 있는 최선입니까, 아니면 이것을 말릴 수 있는 방법이 있습니까?
예로서:
rsync -avPzn -e ssh webhost:/site/www.domain.com/images .
--exclude=**\-[0-9][0-9]x[0-9][0-9].jpg
--exclude=**\-[0-9][0-9][0-9]x[0-9][0-9].jpg
--exclude=**\-[0-9][0-9]x[0-9][0-9][0-9].jpg
--exclude=**\-[0-9][0-9]x[0-9][0-9].png
--exclude=**\-[0-9][0-9][0-9]x[0-9][0-9].png
--exclude=**\-[0-9][0-9]x[0-9][0-9][0-9].png
...
이름이 지정된 이미지에는 image.jpg
이름이 지정된 여러 복사본이 있습니다 image-100x100.jpg
.
답변1
대신 복사하려는 파일 목록을 rsync로 파이프하고 다른 방법을 사용하여 원하지 않는 이미지 이름을 제외할 수 있습니다. 이는 find
정규식 제외를 사용하는 것만큼 간단할 수 있습니다 . 예:
ssh webhost find /site/www.domain.com/images \
! -regex '.*[0-9]+x[0-9]+\.\(png\|jpg\)' | \
rsync -avPzn --files-from=- webhost:/ .
정규식에는 묵시적인 ^
and $
및 기본적으로 emacs 구문이 사용됩니다. posix 버전을 선호할 수도 있습니다:
-regextype posix-extended -regex '.*[0-9]+x[0-9]+\.(png|jpg)'
명령에 find
이러한 옵션이 없으면 sed
또는 이와 유사한 옵션을 사용하여 파일 이름을 필터링할 수 있습니다. 찾기는 전체 경로 이름을 생성하므로 /
기본으로 사용할 rsync를 가져와야 합니다 .