Ні, немає жодного способу виділити безпосередньо з командного рядка 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 лише для файлів, перелічених у цьому файлі.