Kopírování souboru je v každém moderním operačním systému včetně Linuxu naprosto jednoduchý úkol. Stejně jako ve Windows a Macu můžete soubor snadno zkopírovat z příkazu grafického uživatelského rozhraní kliknutím pravým tlačítkem myši na soubor a výběrem možnosti kopírovat.
Co když však chcete soubor zkopírovat do více adresářů pomocí jediného příkazu. To můžete provést pouze pomocí příkazového řádku.
Obvykle bychom v Linuxu použili ke kopírování souboru příkaz cp. Tento příkaz však lze použít pouze ke kopírování souboru do určitého adresáře. Pokud vás napadne zkopírovat soubor do více než jednoho místa určení, musíte hledat jinou alternativu.
Naštěstí Linux obsahuje tolik příkazů. Když se nad příkazem hlouběji zamyslíme, můžeme pomocí něj udělat spoustu věcí. V tomto případě budeme mluvit o příkazu „echo“.
Tento příkaz se v podstatě používá k zápisu na obrazovku. Tento příkaz však můžeme použít také ke kopírování souboru s dalšími možnostmi. Před provedením příkazu je lepší pochopit, jak tento příkaz funguje.
Níže je uvedena syntaxe příkazu, který budeme používat.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp file1
V tomto případě chceme výstup příkazu echo vložit jako vstup do příkazu xargs. K tomu použijeme symbol roury ( | ), který přivádí výstup z jednoho příkazu jako vstup do jiného. Příkaz xargs spustí příkaz cp třikrát, přičemž pokaždé na konec příkazu cp připojí další cestu k adresáři, která mu byla předána příkazem echo. Příkazu xargs jsou předávány tři argumenty , ale volba -n 1 příkazu xargs mu říká, aby při každém spuštění příkazu cp připojil vždy pouze jeden z těchto argumentů.
Vyplývá to?
Níže je uveden příklad příkazu.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp copythisfile.txt