Копирането на файл с командния ред на Linux е лесно. Какво става, ако искате да копирате същия файл на няколко различни места? Това е лесно и ние ще ви покажем как да го направите с една команда.
Обикновено, за да копирате един файл, бихте използвали кп
команда, свързваща файла източник и директорията на местоназначението:
cp ~ / Документи / FileToBeCopied.txt ~ / TextFiles /
За да го копирате в още две директории, много хора биха изпълнили командата още два пъти с различни местоназначения:
cp ~ / Документи / FileToBeCopied.txt ~ / Dropbox /
cp ~ / Документи / FileToBeCopied.txt / media / lori / MYUSBDRIVE /
Можем обаче да направим една и съща задача с една команда:
ехо dir1 dir2 dir3 | xargs -n 1 cp файл1
Ето как работи тази команда. Най- ехо
командата обикновено пише на екрана. В този случай обаче искаме да захранваме продукцията на ехо
команда като вход към xargs
команда. За тази цел използваме символа на тръбата ( |
), който захранва изход от една команда като вход към друга. Най- xargs
командата ще стартира кп
командата три пъти, всеки път, когато се добави следващия пътека на директорията, свързан с него от ехо
команда до края на кп
команда. Има три аргумента, които се приемат xargs
, но -n 1
опция на xargs
команда го казва само да добави един от тези аргументи в даден момент към кп
команда всеки път, когато се изпълнява.
Така че, за да се придържаме към нашия пример от по-ранните, трите отделни кп
командите по-горе могат да се комбинират в една команда по следния начин:
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE xargs -n 1 cp ~ / Документи / FileToBeCopied.txt
Обърнете внимание, че ако копираният файл съществува в която и да е от указаните целеви директории, файлът в тази дестинация ще бъде заменен автоматично. Няма да бъдете попитани дали искате да замените файла. (Обикновено, когато използвате кп
команда за копиране на файл на едно място, можете да го добавите -i
опция да попитате дали искате да замените съществуващ файл. както и да е -i
опцията е интерактивен вариант (причинява кп
командата да поиска вход от потребителя) и не можете да използвате интерактивна опция с кп
команда, когато го използвате заедно с xargs
.)
Друго нещо, което трябва да обмислите, е, че ако копирате много голям файл, може да искате да добавите не-clobber ( -н
) опция към кп
команда в единичната команда по-горе. Тази опция автоматично предотвратява презаписването на файл в местоназначение, ако вече съществува там. Ако копирате много голям файл през мрежа, може да е бавен и може да не искате да използвате ресурсите, необходими за копиране и подмяна на файла. Следната команда добавя -н
опция и няма да копира файла до местоназначение, посочено в аргументите, в изявлението за ехо, ако файлът вече съществува в това местоназначение.
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE xargs -n 1 cp -n ~ / Документи / FileToBeCopied.txt
Въведете echo, man xargs или man cp на командния ред в Linux за повече информация за всяка от тези команди.