Sto cercando di copiare il contenuto di una cartella in un'altra cartella in una directory diversa usando il terminale.
Qualcuno potrebbe fornirmi un esempio della sintassi della riga di comando richiesta per ottenere questo?
Sto cercando di copiare il contenuto di una cartella in un'altra cartella in una directory diversa usando il terminale.
Qualcuno potrebbe fornirmi un esempio della sintassi della riga di comando richiesta per ottenere questo?
Puoi copiare il contenuto di una cartella /source
in un'altra cartella /dest
con il comando
cp -a /source/. /dest/
L'opzione -a
è un'opzione ricorsiva migliorata, che conserva tutti gli attributi del file e conserva anche i collegamenti simbolici.
Il .
alla fine del percorso di origine è una specifica sintassi cp
che consente di copiare tutti i file e le cartelle, inclusi quelli nascosti.
Un alternativo è rsync
rsync -r source/ destination
I vantaggi di rsync sono:
Dopo la sincronizzazione iniziale, copierà solo i file che sono stati modificati.
Puoi usarlo su una rete, conveniente per i file in $ HOME, specialmente i file di configurazione.
Diciamo che hai una cartella chiamata cartella1 nella tua ~
, all'interno di cartella1 c'è 1 file chiamato file1 e 2 cartelle chiamate < em> sub1 e sub2 ciascuno con altri file e cartelle al loro interno.
Per copiare tutto il contenuto di ~/folder1
in ~/new_folder1
dovresti usare
cp -r ~/folder1/. ~/new_folder1
new_folder1
quindi conterrà tutti i file e le cartelle da folder1
.
cp
è il comando da copiare usando un terminale, -r
lo fa in modo ricorsivo (quindi, directory corrente + ulteriori directory all'interno di corrente) ~/folder1
è la cartella di origine, ~/new_folder1
è la cartella di destinazione per i file / cartelle all'interno dell'origine.
Controlla questo link per ulteriori informazioni sulla copia della cartella. Spero che questo aiuti.
cp Command
cp
è un comando di Linux per copiare file e directory. La sintassi è la seguente:
cp source destination
cp dir1 dir2
cp -option source destination
cp -option1 -option2 source destination
In questo esempio copia la cartella /home/vivek/letters
e tutti i suoi file nella directory /usb/backup
:
cp -avr /home/vivek/letters /usb/backup
Dove,
-a
: preserva gli attributi specificati come directory, modalità file, proprietà, data / ora, se possibile attributi aggiuntivi: contesto, collegamenti, xattr, tutti.
-v
: spiega cosa si sta facendo.
-r
: copia le directory in modo ricorsivo.
Esempio
Copia una cartella chiamata / tmp / conf in / tmp / backup:
$ cp -avr /tmp/conf/ /tmp/backup
Se ci sono due cartelle: (con permesso di scrittura)
drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 .
drwxr-xr-x 3 root root 4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA
drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL
Se ci si trova all'interno della cartella denominata PORTALE in cui si desidera copiare tutto il contenuto di un'altra cartella, dire DATI allo stesso livello allora farai
[email protected]:/var/www/html/PORTAL$ cp -a ../DATA/. .
Devi notare 2 punti. L'ultimo punto dice copia qui nella cartella attuale
e
uno dopo / DATA /. Dice che tutti i CONTENUTI nella cartella DATA devono essere copiati, e non la cartella DATA stessa.
Se rimuovi questo finale "." da / DATA /
allora tutta la cartella DATA verrà copiata all'interno di PORTAL (da dove stai copiando).
Leggi altre domande sui tag command-line cp