Как использовать grep --help content

Сегодня я столкнулся с этой проблемой и решил ее без необходимости изменять файлы конфигурации или предоставлять разрешения на уровне root для учетных записей пользователей. Моя конкретная установка заключалась в том, что пользователь A на машине foo должен был скопировать все пользовательские каталоги из foo на машину bar в каталог резервной копии , принадлежащий пользователю A . (Пользователь A имеет привилегии sudo для foo .)

Команда, которую я использовал, приведена ниже. Он был вызван пользователем A в каталоге / home на foo .

sudo rsync -avu -e "ssh -i /home/A/.ssh/id_rsa -l A"  * B:/home/backup

Это запускает rsync как sudo, чтобы можно было получить доступ ко всем пользовательским каталогам на foo , но он сообщает rsync использовать ssh для доступа к машине bar с использованием пользователя A учетные данные. Мои потребности немного отличались от приведенного выше вопроса, но это позволило мне быстро получить резервную копию всех пользовательских каталогов на конкретной машине, которой я управляю, без нарушения конфигурации системы.

3
08.02.2018, 22:59
1 ответ

La salida de route --helpse escribe con un error estándar; salida no estándar. Para grepesa salida, deberá redirigirla a la salida estándar:

$ route --help 2>&1 | grep -m1 'add'
       route [-v] [-FC] {add|del|flush}...  Modify routing table for AF.

La sintaxis 2>&1le dice al shell, "tome lo que está escrito como error estándar y, en su lugar, escríbalo en la salida estándar" (técnicamente, dice "tome lo que está escrito en el descriptor de archivo 2,y, en su lugar, escríbalo en cualquier lugar donde esté escribiendo el descriptor de archivo 1" ). -m1le dice a grepque deje de buscar después de una coincidencia, para evitar la tercera -desde la última línea -.

5
27.01.2020, 21:15

Теги

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