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

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

Рубрики:

Linux, Терминал Linux

Метки:

cp, echo, find, linux, tee, xargs

Информация в операционной системе Linux хранится в файлах. Они могут быть фото- или видеоматериалом, текстовыми документами, скриптами и т. п. В процессе работы пользователю может понадобиться скопировать файл в другую директорию.

Обычно для решения этой задачи используется команда cp. Она позволяет скопировать один или несколько файлов в заданный каталог. Что, если по каким-то причинам Вам нужно скопировать файл сразу в несколько директорий? Одной утилитой cp в таком случае не обойтись.

Из этой статьи Вы узнаете, как скопировать файл в несколько каталогов в ОС Linux.

Содержание:

  1. Используйте xargs и echo
  2. Используйте find
  3. Используйте tee
  4. Выводы

Используйте xargs и echo

Утилита xargs позволяет пользователю строить и выполнять сложные операции в командной строке. Она передает элементы из стандартного ввода команде и выполняет ее с заданными начальными аргументами. Допустим, у нас есть две директории ~/123, ~/321 и файл file.txt, который хотим скопировать в эти каталоги. Для решения этой задачи будем использовать следующую команду:

 

xargs

Давайте разберем использованные выше команды и опции:

  • echo — передает на стандартный ввод xargs путь к каталогам;
  • xargs — передает путь директорий команде cp и выполняет ее два раза;
  • cp — копирует указанный файл;
  • -n 1 — использует только один из аргументов за раз.

Используйте find

Команда find ищет файлы в иерархии каталогов. Ее можно использовать в комбинации с cp для копирования файлов:

 

find

Читайте также: Переход с Windows на Unix для новичков — 20 полезных команд для новичков Linux.

В этом примере также используется несколько разных команд и их опций:

  • -maxdepth 0 — позволяет скопировать файл только в верхний уровень иерархии каталога (иначе файл скопируется во все подкаталоги указанной директории);
  • -type d — определяет тип объекта поиска, как директория;
  • -exec — выполняет команду, указанную в качестве аргумента;
  • cp — копирует указанный файл.

Важно: обязательно напишите в конце комбинации точку с запятой.

Используйте tee

Утилита tee принимает данные из стандартного ввода и записывает их в стандартный вывод или файлы. Так как tee записывает информацию в файл, то Вы должны указать не путь к каталогам, в которые хотите скопировать файл, а к файлам, которые должны быть созданы в этих директориях. Стоит отметить, что путь должен быть абсолютным, а не относительным. Допустим, мы хотим, чтобы файл file.txt скопировался в file1.txt и file.txt в каталогах /123 и /321 соответственно:

 

tee

Выводы

Знать, как скопировать файл в несколько каталогов в Linux — очень важно для уверенного пользования ОС. Мы рассмотрели три разных способа, которые помогут Вам существенно сократить время копирования файлов. Надеемся, что эта статья была полезна для Вас!

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

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

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

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

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux, Терминал Linux

Метки:

cp, echo, find, linux, tee, xargs

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

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

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

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


Поиск по сайту
Лучшее
Популярное
Рубрики