Я разрабатываю что-то на своем ноутбуке и scp'ing файлы к высокопроизводительному ПК (сервер без монитора). Из лени я просто делаю это в настоящее время (на ноутбуке):
scp -r ~/project/* server:~/project/
Однако некоторые файлы в каталоге проекта являются некоторыми файлами журнала и файлами, которые я не должен отправлять, который может иногда быть концертом или около этого. То, что я хотел бы, является хорошей чистой командой, которая в основном делает то же самое (передает все файлы в проекте и его подкаталогах), но только отправляет файлы под определенным порогом размера файла, такие как 100 МБ. Я только мягко испытан с ударом и нисколько с regexp, таким образом, у меня действительно нет идеи, как сделать это без некоторого замысловатого метода, такого как импорт sys в Python и использование набора IFS и сравнений.
можно использовать команду 'rsync', которая имеет опцию к управлению размером файла для исключения.
rsync -rv --max-size=100m /path/in/local/ server:~/project/
от 'человека rsync',
--max-size=SIZE don't transfer any file larger than SIZE
Обновленный ответ: просто исключите файлы журнала с 'rsync' - исключают опцию как ниже
rsync -rv --exclude='*.log' --max-size=100m /path/in/local/ server:~/project/
или можно использовать комбинацию команды 'находки' с 'scp' и указать предел размера файла с -size
опция. использовать ! -name '*.log'
исключить определенный конец файлов с 'журналом'.
find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;