Копирование файла в ОС Linux является простым, независимо от того, используется ли командная строка или графический способ. Однако некоторые пользователи предпочитают командную строку для выполнения почти всех задач. Командная строка предлагает не только простой, но и более быстрый способ выполнения задачи. Cp - это команда в Linux, которая используется для копирования файла из одного места в другое. Но что если нам нужно скопировать файл в несколько мест. Есть способ, который я могу показать, как этого добиться в Linux.
Сначала давайте посмотрим, как использовать команду cp для копирования файлов из одного места в другое. Общий синтаксис для копирования файлов с помощью команды cp следующий:
1 | cp ~[/location/sourcefile] ~[/destinationfolder] |
В качестве примера можно привести копирование файла testfile1 из каталога Documents в каталог Downloads. Для этого я выполнил следующую команду в терминале:
1 | cp ~/Documents/testfile1 ~/Downloads/ |
Теперь, когда нам нужно скопировать файл в несколько мест, мы должны выполнить команды несколько раз. Например, в следующем примере мы копируем testfile1 из Documents в два разных места, т.е. Downloads и Desktop. Для этого нам нужно дважды выполнить команду cp в Терминале:
1 2 | cp ~/Documents/testfile1 ~/Downloads/ cp ~/Documents/testfile1 ~/Desktop/ |
Копирование файла в несколько мест с помощью команды echo
Копирование файла в два места с помощью команды cp все еще приемлемо, но предположим, что нам нужно скопировать файл в четыре, пять или более мест. В этом случае у нас есть другое решение - использование команды echo. Синтаксис команды будет следующим:
1 | echo [destination1] [destination2] [destiantion3]..... | xargs -n 1 cp [/location/sourcefile] |
Команда echo обычно используется в сценариях командной оболочки для печати сообщения или вывода на экран. Но в данном примере мы будем использовать ее для передачи вывода команде xargs через символ |. Команда xargs трижды получит ввод от команды echo и трижды выполнит операцию cp, копируя тестовый файл в три разных места. Флаг n в приведенной выше команде указывает команде cp принимать по одному аргументу за раз.
Обратите внимание, что эта команда перезапишет уже существующий файл с тем же именем в каталоге назначения. Поэтому лучше сделать резервную копию важного файла.
В следующем примере мы используем эту команду для копирования файла testfile1 из каталога Documents в три разных каталога: Desktop, Downloads и Music. Для этого мы выполнили следующую команду:
1 | echo [~/Desktop] [~/Downloads] [~/Music] | xargs -n 1 cp [/location/sourcefile] |
Вот и все! Теперь мы научились копировать файл одной командой в несколько каталогов. Теперь вам не придется писать несколько команд для выполнения простейшей задачи - копирования одного файла в несколько каталогов.