Нет, напрямую из командной строки rsync нельзя выделить файлы определенного пользователя.
Однако создать список этих файлов очень просто, например, с помощью команды
find /src/directory -type f -exec ls -lh {} \; | awk '{if ($3 == "your_name") for (i=1; i<=NF-8; i++) $i = $(i+8); NF-=8; print}'
find
находит все файлы в дереве под каталогом /src / и распечатывает длинный список, включающий владельца, затем передает эти списки в awk
, который выбирает те, которые принадлежат вам ("ваше_имя"), а затем только для эти, распечатывает полный путь. Странная конструкция, начинающаяся с for
, связана с тем, что некоторые имена файлов могут содержать пробел, поэтому эта конструкция выводит все токены (i.e.
Е. Все символьные последовательности, разделенные пробелами) из 9-го столбца (имена файлов могут включать произвольные количество пробелов). Кроме того, эта конструкция гарантирует, что это остается на одной строке.
Вы можете перенаправить этот вывод в файл, а затем использовать rsync только для файлов, перечисленных в этом файле.