La copia di un file con la riga di comando di Linux è semplice. Tuttavia, che cosa succede se si desidera copiare lo stesso file in più posizioni diverse? Anche questo è facile e ti mostreremo come farlo con un comando.
Normalmente, per copiare un file, devi usare il comandocp
, collegandolo al file sorgente e alla destinazione directory:
cp ~ / Documents / FileToBeCopied.txt ~ / TextFiles /
Per copiarlo su altre due directory, molte persone eseguono il comando altre due volte, con destinazioni diverse:
cp ~ / Documents /FileToBeCopied.txt ~ / Dropbox /
cp ~ / Documents / FileToBeCopied.txt / media / lori / MYUSBDRIVE /
Tuttavia, possiamo eseguire la stessa operazione con un comando:
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Ecco come funziona questo comando. Il comandoecho
normalmente scrive sullo schermo. Tuttavia, in questo caso, vogliamo alimentare l'output del comandoecho
come input per il comandoxargs
. Per fare ciò, utilizziamo il simbolo pipe (|
) che alimenta l'output da un comando come input a un altro. Il comandoxargs
eseguirà il comandocp
tre volte, ogni volta aggiungendo il successivo percorso di directory convogliato dal comandoecho
alla fine del> comando cp
. Sono passati tre argomenti axargs
, ma l'opzione-n 1
sul comandoxargs
indica che è possibile aggiungere solo uno di questi argomenti alla volta per il comandocp
ogni volta che viene eseguito.
Quindi, per seguire il nostro esempio di prima, i tre comandicp
precedenti possono essere combinati in un comando come questo:
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Documents / FileToBeCopied.txt
Si noti che se il file da copiare esiste in una qualsiasi delle directory di destinazione specificate, il file in quella destinazione verrà automaticamente sostituito. Non ti verrà chiesto se desideri sostituire il file. (Normalmente, quando si usa il comandocp
per copiare un file in una singola posizione, è possibile aggiungere l'opzione-i
per chiedere se si desidera sostituire un file esistente. l'opzione-i
è un'opzione interattiva (causa il comandocp
per chiedere l'input dall'utente) e non è possibile utilizzare un'opzione interattiva concp
comando quando lo si utilizza in combinazione conxargs
.)
Un'altra cosa da considerare è che se si sta copiando un file molto grande, si potrebbe voler aggiungere il no-clobber (- n
) opzione per il comandocp
nel comando singolo sopra. Questa opzione impedisce automaticamente che un file venga sovrascritto in una destinazione se esiste già lì. Se stai copiando un file molto grande su una rete, potrebbe essere lento e potresti voler evitare di utilizzare le risorse richieste per copiare e sostituire il file. Il seguente comando aggiunge l'opzione-n
e non copierà il file in nessuna destinazione elencata negli argomenti dell'istruzione echo, se il file esiste già in quella destinazione.
echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documents / FileToBeCopied.txt
Digitare man echo, man xargs o man cp sulla riga di comando in Linux per ulteriori informazioni su uno di questi comandi.
Perché i vecchi videogiochi erano così difficili: la storia non ufficiale di Nintendo Hard
Se sei abbastanza vecchio da aver giocato ai giochi negli anni '80 o nei primi anni '90, ti ricorderai che erano difficile: davvero dannatamente difficile. Perché erano così infuriatamente difficili? La risposta presenta uno sguardo affascinante sulla storia dei videogiochi. Quando la gente parla di quanto fossero duri i vecchi videogiochi, usano la frase "Nintendo Hard".
Le lampadine intelligenti consumano elettricità anche quando sono spente?
Le lampadine intelligenti sono super convenienti e possono farti risparmiare rispetto alle lampadine tradizionali. Una domanda, tuttavia, è se usano ancora l'elettricità anche quando le luci sono spente. Perché questa è una preoccupazione? CORRELATO: Le lampadine a LED durano veramente 10 anni? LED le lampadine in generale possono essere un fantastico risparmio energetico, dal momento che non richiedono molta elettricità rispetto ad altri tipi di luci.