Slik kopierer du en fil til flere kataloger med en kommando i Linux

Slik kopierer du en fil til flere kataloger med en kommando i Linux
Slik kopierer du en fil til flere kataloger med en kommando i Linux

Video: Slik kopierer du en fil til flere kataloger med en kommando i Linux

Video: Slik kopierer du en fil til flere kataloger med en kommando i Linux
Video: Clean Your Hard Drive in 10 Seconds - YouTube 2024, April
Anonim
Det er enkelt å kopiere en fil med Linux-kommandolinjen. Men hva om du vil kopiere den samme filen til flere forskjellige steder? Det er også lett, og vi viser deg hvordan du gjør det med en kommando.
Det er enkelt å kopiere en fil med Linux-kommandolinjen. Men hva om du vil kopiere den samme filen til flere forskjellige steder? Det er også lett, og vi viser deg hvordan du gjør det med en kommando.

Normalt, for å kopiere en fil, ville du bruke

cp

kommandoen, kobling til kildefilen og målkatalogen:

cp ~/Documents/FileToBeCopied.txt ~/TextFiles/

For å kopiere den til to flere kataloger, ville mange mennesker bare kjøre kommandoen to ganger med forskjellige destinasjoner:

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/

cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

Vi kan imidlertid gjøre samme oppgave med en kommando:
Vi kan imidlertid gjøre samme oppgave med en kommando:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

Her er hvordan denne kommandoen fungerer. De

echo

kommandoen skriver normalt til skjermen. Men i dette tilfellet ønsker vi å mate utgangen av

echo

kommando som input til

xargs

kommando. For å gjøre dette bruker vi pipesymbolet (

|

) som mater utgang fra en kommando som input til en annen. De

xargs

kommandoen vil kjøre

cp

kommandoen tre ganger, hver gang du legger til den neste katalogbanen, pipet til den fra

echo

kommandoen til slutten av

cp

kommando. Det er tre argumenter som sendes til

xargs

men

-n 1

alternativ på

xargs

kommandoen forteller det å bare legge til et av disse argumentene om gangen til

cp

kommandoen hver gang den løper.

Så, å holde fast ved vårt eksempel fra tidligere, de tre separate

cp

Kommandoer ovenfor kan kombineres til en kommando som dette:

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

Merk at hvis filen som kopieres finnes i en av de angitte målkatalogene, blir filen i den destinasjonen erstattet automatisk. Du blir ikke spurt om du vil erstatte filen. (Normalt når du bruker
Merk at hvis filen som kopieres finnes i en av de angitte målkatalogene, blir filen i den destinasjonen erstattet automatisk. Du blir ikke spurt om du vil erstatte filen. (Normalt når du bruker

cp

kommandoen for å kopiere en fil til et enkelt sted, kan du legge til

-i

alternativ for å spørre om du vil erstatte en eksisterende fil. Imidlertid

-i

alternativet er et interaktivt alternativ (det forårsaker

cp

kommando for å be om innspilling fra brukeren), og du kan ikke bruke et interaktivt alternativ med

cp

kommando når du bruker den sammen med

xargs

.)

En annen ting å vurdere, er at hvis du kopierer en veldig stor fil, vil du kanskje legge til no-clobber (

-n

) alternativet til

cp

kommando i kommandoen ovenfor ovenfor. Dette alternativet forhindrer automatisk at en fil overskrives i en destinasjon hvis den allerede finnes der. Hvis du kopierer en veldig stor fil over et nettverk, kan det være sakte, og du vil kanskje unngå å bruke ressursene som kreves for å kopiere og erstatte filen. Følgende kommando legger til

-n

alternativet, og vil ikke kopiere filen til et mål som er oppført i argumentene til ekko-setningen, hvis filen allerede eksisterer i den destinasjonen.

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

Anbefalt: