Att kopiera en fil är en mycket enkel sak att göra i alla moderna operativsystem, inklusive Linux. Precis som i Windows och Mac kan du kopiera en fil enkelt från GUI-kommandot genom att högerklicka på filen och välja kopieringsalternativet.
Men vad händer om du vill kopiera en fil till flera kataloger med ett enda kommando? Du kan bara göra detta med hjälp av kommandoraden.
Normalt sett använder vi kommandot cp för att kopiera en fil i Linux. Men det här kommandot kan bara användas för att kopiera en fil till en specifik katalog. Om du funderar på att kopiera en fil till fler än en destination måste du leta efter ett annat alternativ.
Turligtvis finns det så många kommandon i Linux. När vi utforskar djupare över ett kommando kan vi göra många saker med hjälp av det. I det här fallet ska vi tala om ”echo”.
Detta kommando används i princip för att skriva på skärmen. Men vi kan också använda det här kommandot för att kopiera en fil med ytterligare alternativ. Innan vi utför kommandot är det bättre att förstå hur kommandot fungerar.
Nedan följer syntaxen för det kommando vi ska använda.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp file1
I det här fallet vill vi mata utmatningen från kommandot echo som indata till kommandot xargs. För att göra detta använder vi pipesymbolen ( | ) som matar utdata från ett kommando som indata till ett annat. Kommandot xargs kommer att köra kommandot cp tre gånger, och varje gång lägga till nästa katalogsökväg som pipats till det från kommandot echo i slutet av kommandot cp. Det är tre argument som skickas till xargs , men alternativet -n 1 i xargs-kommandot talar om för det att bara lägga till ett av dessa argument åt gången till cp-kommandot varje gång det körs.
Fattar du?
Underför är exemplet på kommandot.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp copythisfile.txt