x보다 작은 크기의 파일을 어떻게 scp합니까?


13

랩톱에서 무언가를 개발하고 파일을 고성능 PC (모니터가없는 서버)로 scp'ing합니다. 게으름에서 현재 (노트북에서)이 작업을 수행합니다.

scp -r ~/project/* server:~/project/

그러나 프로젝트 디렉토리의 파일 중 일부는 로그 파일과 보낼 필요가없는 파일이며 때로는 공연 일 수 있습니다. 내가 원하는 것은 기본적으로 동일한 작업을 수행하고 (프로젝트 및 하위 디렉토리의 모든 파일을 전송하지만) 100MB와 같은 특정 파일 크기 임계 값 아래에서만 파일을 보내는 멋진 정리 명령입니다. 나는 bash에 약간만 경험하고 regexp를 전혀 사용하지 않으므로 sys를 파이썬으로 가져오고 많은 if와 비교를 사용하는 것과 같은 복잡한 방법 없이는이를 수행하는 방법을 전혀 모른다.

답변:


27

제외 할 파일 크기를 제어하는 ​​옵션이있는 'rsync'명령을 사용할 수 있습니다.

rsync -rv --max-size=100m /path/in/local/ server:~/project/

' man rsync '에서

--max-size=SIZE    don't transfer any file larger than SIZE

업데이트 된 답변 : 단순히 'rsync'--exclude 옵션으로 로그 파일을 제외하십시오.

rsync -rv --exclude='*.log' --max-size=100m /path/in/local/ server:~/project/

또는 'scp'와 함께 'find'명령 조합을 사용하고 -size옵션으로 파일 크기 제한을 지정할 수 있습니다. 사용하는 ! -name '*.log'특정 파일을 '로그'로 끝나는 제외 할 수 있습니다.

find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;

1
OP :에 대한 참고 사항은와 rsync비슷 scp하지만 파일이 수정 된 경우에만 변경 사항을 전송하므로보다 효율적입니다.
Paddy Landau

디렉토리의 순서에주의rsync -rv --max-size SOURCE DESTINATION. 나는 제대로 읽지 않았고,이 쿠데타는 매우 나쁜 결과를 초래했습니다.
toto_tico
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.