Самый легкий путь состоит в том, чтобы выполнить zsh вместо удара.
rsync -a -- /path/to/directory/*(om[1,42]) remote-server:
В круглых скобках, om
файлы заказов к обратному времени изменения (т.е. путем увеличения возраста), и [1,42]
выбирает первые 42 соответствия.
Если Вы хотите только регулярные файлы и не каталоги, добавьте a .
после вводной круглой скобки. Для большего количества возможностей посмотрите под “спецификаторами шарика” в zshexpn
страница справочника.
Если Вы хотите соответствовать файлам в дереве каталогов, базированном в /path/to/directory
, вместо только в том каталоге, использовать /path/to/directory/**/*(.om[1,42])
. Это отправит все файлы в тот же каталог на цели, все же.
Принятие Вас хочет отправить файлы от текущего рабочего каталога:
rsync `ls -tp | grep -v / | head -n <n>` <destination> <options>
добьется цели. Например:
rsync `ls -tp | grep -v / | head -n 10` user@host:/dest/dir/ --progress --compress
Это даст ошибку, если не будет никаких файлов, которые будут найдены в текущем рабочем каталоге, или если какой-либо из главных файлов содержит пробелы или другие специальные символы.
'Символы вокруг ls -tp | grep -v / | head -n <n>
скажите удару выполнять команды, и заменил их получающимся списком файлов, поскольку пространство разделило список. -t
опция говорит ls
к виду меткой времени, -p
говорит этому добавлять a /
после имен каталогов и grep части фильтрует окончание строк /
таким образом, Вы не заканчиваете тем, что отправили каталоги. Добавить -c
к ls
опции, если Вы хотите, чтобы новейшие файлы были оценены ко времени создания вместо времени изменения (хотя примечание, что некоторые программы удалят и заменят файлы вместо того, чтобы обновить их так ctime и mtime, может быть тем же даже при том, что файл, кажется, был вокруг дольше).
Я не буду утверждать, что это - без сомнения самый легкий путь, но это был бы способ, которым я буду сначала думать.
(sub-question-in-a-comment mwm)
что относительно наоборот? сервер к локальному?
Это было бы немного более сложно, поскольку я не думаю, что у Вас может быть несколько удаленных источников файла на rsync командной строке как Вы, может локальные. Вы могли работать rsync
на сервере через ssh
, открытие туннеля назад к Вашему локальному sshd
(с тем же ssh
вызов Вы прокручиваете rsync) для получения соединения, по существу использовал ту же команду с другой стороны.