Intereting Posts
Как можно отключить программу после того, как корневая файловая система будет отключена? Почему systemd отключает мои файловые системы с предохранителями сразу после их установки? не может найти мое имя пользователя в / etc / passwd или имя моей начальной группы в / etc / group Написание пользовательских заставки Gnome / Mate с SDL Как диски NTFS обрабатываются Linux? В fstab ничего нет, но он автоматизирован. Ничего в mtab пока не установлено Методы вставки содержимого первичного отбора X11? Аудиовыход для браузера (Kubuntu) Как указать альтернативный интерфейс моста (не br0) при использовании qemu-bridge-helper Solaris 10, изменить размер раздела Использовать xargs для перемещения файлов из каталога Как заблокировать KDE-сессии всех других пользователей CentOS yum install gcc error: glibc-common конфликты с glibc apt – настройка цветов Невозможно использовать nmap Как печатать размеры xterm в строке заголовка?

найти и rsync?

Я хочу, чтобы иметь возможность искать файлы в течение 14 дней и более 10k и чем rsync найденные файлы в пункт назначения.

Есть ли способ объединить эти две команды?

find ./ -mtime +14 -size +10k rsync --remove-sent-files -avz /src /dest 

Вы можете отправить результат поиска в rsync, используя один из вариантов, описанных ниже.

Способ №1

Эти 2 варианта очень похожи, они оба предполагают, что вы меняете каталоги в какое-то место, а затем запускаете команду find оттуда.

 $ rsync -avz --remove-sent-files \ --files-from=<(find ./ -mtime +14 -size +10k) ./ /dest 

Вы также можете использовать канал для подачи списка в:

 $ find ./ -mtime +14 -size +10k -print0 \ | rsync -av --files-from=- --from0 ./ /dest 

Способ №2

Этот метод можно запускать из любого места.

 $ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \ | rsync --files-from=- --from0 /src/dir/ /dst/dir/ 
  • printf %P : имя файла с именем аргумента командной строки, в котором оно было удалено. Таким образом, вы можете использовать любой каталог src, не нужно записывать cd в свой каталог src.

Рекомендации

  • Terminal – rsync + find – commandlinefu.com