Поиск по сайту:

Как скопировать файл в несколько каталогов в Linux


При изучении Linux для новичков всегда является нормой набирать несколько команд для выполнения простой задачи. Это понятно, особенно когда человек только привыкает к использованию терминала.

Однако, поскольку вы с нетерпением ждете возможности стать опытным пользователем Linux, изучение того, что я бы назвал «командами быстрого доступа», может значительно снизить тенденцию к потере времени.

В этой статье мы объясним простой способ копирования файла в несколько каталогов в Linux с помощью одной команды.

В Linux команда cp используется для копирования файлов из одного каталога в другой, самый простой синтаксис ее использования следующий:

cp [options….] source(s) destination

Альтернативно вы также можете использовать команду Advanced-copy, которая показывает индикатор выполнения при копировании больших файлов/папок в Linux.

Рассмотрим приведенные ниже команды. Обычно вы вводите две разные команды, чтобы скопировать один и тот же файл в два отдельных каталога следующим образом:

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

Если вы хотите скопировать определенный файл в пять или более каталогов, это означает, что вам придется ввести пять или более команд cp?

Чтобы решить эту проблему, вы можете использовать команду echo, команду pipe, xargs вместе с командой cp в форме ниже:

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

В приведенной выше форме пути к каталогам (dir1,dir2,dir3…..dirN) отображаются и передаются в качестве входных данных для команды xargs, где:

  1. -n 1 — сообщает xargs использовать не более одного аргумента в командной строке и отправлять его команде cp.
  2. cp – используется для копирования файла.
  3. -v – включает подробный режим для отображения подробностей операции копирования.

Попробуйте прочитать справочные страницы команд cp, echo и xargs, чтобы найти полезную и расширенную информацию об использовании:

man cp
man echo
man xargs

Вот и все, вы можете присылать нам вопросы по теме или любые отзывы через форму комментариев ниже. Вы также можете прочитать о команде Progress, которая помогает отслеживать ход выполнения (cp, mv, dd, tar и т. д.). команды, которые в настоящее время работают в Linux.