12-Practical-Examples-of-Linux-Xargs-Command-for-Beginners

12 практических примеров команды xargs для начинающих в Linux, xargs примеры

xargs

Xargs — отличная команда, которая считывает потоки данных со стандартного ввода, затем генерирует и выполняет командные строки; что означает, что она может выводить команду и передавать её в качестве аргумента другой команде. Если команда не указана, xargs выполняет эхо вывод по умолчанию. Вы также можете указать считывать данные из файла вместо stdin.

Существует несколько способов использования xargs при ежедневном использовании командной строки. В этой статье мы объясним 12 практических примеров использования команд xargs для новичков в Linux.

1. В первом примере показано, как найти все изображения .png и архивировать их с помощью утилиты tar:

Здесь команда -print0 позволяет выводить полный путь к файлу на стандартном выходе, за которым следует нулевой символ, а флаг -0 xargs эффективно использует пространство в именах файлов.

$ find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

 

Find-Images-and-Archive-Using-Tar

 

 

2. Вы также можете преобразовать вывод множества строк из команды ls в одну строку, используя xargs следующим образом:

$ ls -1 Pictures/tecmint/
$ ls -1 Pictures/tecmint/ | xargs

 

List-Files-in-Single-Line

 

 

3. Чтобы создать компактный список всех учетных записей пользователей Linux в системе, используйте следующую команду:

$ cut -d: -f1 < /etc/passwd | sort | xargs

 

Find-List-of-Linux-Users

 

 

4. Предположим, что у вас есть список файлов, и вы хотите узнать количество строк/слов/символов в каждом файле в списке, вы можете использовать комбинацию команд ls и xargs, следующим образом:

$ ls *upload* | xargs wc

 

Count-Number-of-Lines,-Words-and-Characters-in-Files

 

 

5. Xarags также позволяет вам находить и рекурсивно удалять каталог, например, следующая команда будет рекурсивно удалять DomTerm в каталоге «Downloads»:

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

 

Find-and-Recursively-Delete-Directory

 

 

6. Аналогично предыдущей команде вы также можете найти все файлы с именем net_stats в текущем каталоге и удалить их:

$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

 

7. Используйте xargs для одновременного копирования файла в несколько каталогов; в этом примере мы пытаемся скопировать файл «SIC_Template.xlsx «:

$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

 

Copy-File-to-Multiple-Directories

 

 

8. Вы также можете использовать команды findxargs и rename для преобразования всех файлов или подкаталогов в конкретном каталоге в нижний регистр следующим образом:

$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

 

9. Вот еще один полезный пример использования xargs, он показывает, как удалить все файлы в каталоге, кроме одного или нескольких файлов с заданным расширением:

$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

 

10. Как упоминалось ранее, вы можете указать xargs считывать элементы из файла вместо стандартного ввода, используя флаг -a, как показано ниже:

$ xargs -a rss_links.txt

 

11. Вы можете включить подробности о выполнении используя флаг -t, который указывает xargs выводить командную строку на стандартном выводе ошибок перед её выполнением.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

 

12. По умолчанию xargs разделяет элементы используя пробелы, вы можете использовать флаг -d для установки разделителя, который может быть единственным символом, escape-символом, например \n, или восьмеричным или шестнадцатеричным escape-кодом.

Кроме того, вы также можете запрашивать пользователя о том, следует ли запускать каждую командную строку и читать строку с терминала, используя флаг -p, как показано ниже (просто введите «y» для ответа «да» или «n» для ответа «нет»):

$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

 

Prompt-User-Before-Running-Command

 

 

Для получения дополнительной информации прочитайте страницу руководства xargs:

$ man xargs

 

Вот и все! Xargs — мощная утилита для работы в командной строке; она может помочь вам передать вывод одной команды в качестве аргумента другой команды для обработки. В этой статье мы объяснили 12 практических примеров команд xargs для новичков.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
xargs

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню