rsync создает каталоги с тем же именем внутри целевой папки

Вы можете использовать тройник , чтобы направить свой вывод на терминал другого человека, если вы знаете, какой терминал он использует.

Вы можете использовать команду w , чтобы узнать терминал:

user4@myubuntu:~$ w
 16:41:36 up 13 min,  4 users,  load average: 0.55, 0.60, 0.46
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user1    :0       :0               16:28   ?xdm?   6:28   0.03s gdm-session-worker [pam/gdm-password]
user2    pts/1    :0               16:38    2:46   0.04s  0.04s bash
user3    pts/7    :0               16:38    1:32   0.09s  0.09s bash
user4    pts/8    :0               16:41    4.00s  0.05s  0.00s w

Я user4 на терминале pts / 8 . Если я хочу отправить свой вывод на user2 на терминале pts / 1 , я использую следующую команду для запуска новой оболочки:

$ bash | tee /dev/pts/1

Затем весь вывод моих последующих команд (но не ввод) будет скопирован на терминал user2 . Если вы закончили, просто нажмите Ctrl-D , чтобы завершить работу оболочки.

Если вы хотите отправить сообщение или текст другому пользователю, вы можете использовать команду write :

$ write <username>
hello, are you there ? 
Ctrl-d
3
20.02.2017, 18:46
2 ответа

Этот ответ не учитывает ограничение «не старше 1 дня».

Вместо того, чтобы пытаться анализировать вывод find, используйте rsyncнапрямую изfind:

find /mnt/IP/ftp/123 -type -name '1[14].*' -prune \
    -exec rsync -av \
        --include='*.bin' --include='*/' \
        --exclude='*' --prune-empty-dirs {} /home/ftp/123 ';'

Это позволит найти каталоги, имена которых начинаются с 11.или 14.в или под /mnt/IP/ftp/123. Для каждого такого каталога он удаляет каталог из списка поиска (с помощью -prune), а затем выполняет

rsync -av --include='*.bin' --include='*/' \
    --exclude='*' --prune-empty-dirs {} /home/ftp/123 

, где {}будет заменено путем к найденному каталогу.

Команда rsyncсоздаст подкаталог /home/ftp/123с тем же именем файла, что и найденный каталог (, т. е. начиная с 11.или 14.), а затем скопирует файлы .bin.

Шаблоны включения и исключения, используемые сrsync(победами в первом матче):

  • --include='*.bin':включает любой файл, имя которого заканчивается на .bin.
  • --include='*/':включить любой каталог. Пустые каталоги в цели будут удалены из-за --prune-empty-dirs.
  • --exclude='*':исключить все, что не включено в предыдущие правила.
0
27.01.2020, 21:36

Вы можете использовать findдля создания набора файлов, удовлетворяющих вашим трем критериям:

  • Не старше суток
  • Должен находиться в каталогах, соответствующих 11.*или14.*
  • Сопоставление файлов*.bin

, а затем передать этот список в rsyncдля обработки:

find mnt/IP/ftp/123/./ -mtime -1 \( -path '*/1[14].*/*' -prune \) -name '*.bin' -print0 |
    rsync -av --files-from - --from0 --prune-empty-dirs / dst/    

Я использовал -print0и -from0, чтобы обеспечить правильную обработку файлов с неожиданными символами в именах. Дополнительный /./в пути findуказывает rsync, что все, что находится перед этим компонентом, должно быть удалено из пути назначения. (Если вы решите использовать относительный путь в find(, то есть такой, который не начинается с /), измените источник rsyncс /на ..)


Пример сценария

# All files in the example
find /mnt/IP/ftp/123/./ -type f
/mnt/IP/ftp/123/./11.one/7.skip/skip.bin
/mnt/IP/ftp/123/./11.one/item.bin
/mnt/IP/ftp/123/./12.skip/item.bin
/mnt/IP/ftp/123/./14.one/item.bin
/mnt/IP/ftp/123/./item.bin
/mnt/IP/ftp/123/./sub/13.skip/item.bin
/mnt/IP/ftp/123/./sub/14.next/item.bin
/mnt/IP/ftp/123/./sub/14.next/skip.this
/mnt/IP/ftp/123/./sub/item.bin

# Files matched by "find"
find mnt/IP/ftp/123/./ -mtime -1 \( -path '*/1[14].*/*' -prune \) -name '*.bin' -print
/mnt/IP/ftp/123/./11.one/item.bin
/mnt/IP/ftp/123/./14.one/item.bin
/mnt/IP/ftp/123/./sub/14.next/item.bin

# Files copied by "rsync"
find /mnt/IP/ftp/123/./ -mtime -1 \( -path '*/1[14].*/*' -prune \) -name '*.bin' -print0 |
    rsync -av --files-from - --from0 --prune-empty-dirs / dst/
building file list... done
11.one/
11.one/item.bin
14.one/
14.one/item.bin
sub/
sub/14.next/
sub/14.next/item.bin
0
27.01.2020, 21:36

Теги

Похожие вопросы