Come posso copiare il contenuto di una cartella in un'altra cartella in una directory diversa usando il terminale?

519

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?

    
posta pandisvezia 11.12.2011 - 02:19

5 risposte

786

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.

    
risposta data enzotib 11.12.2011 - 13:01
96

Un alternativo è rsync

rsync -r source/ destination

I vantaggi di rsync sono:

  1. Dopo la sincronizzazione iniziale, copierà solo i file che sono stati modificati.

  2. Puoi usarlo su una rete, conveniente per i file in $ HOME, specialmente i file di configurazione.

risposta data Panther 11.12.2011 - 04:59
56

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.

    
risposta data Bruno Pereira 11.12.2011 - 02:23
13

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
    
risposta data Dilip Rajkumar 25.11.2014 - 06:53
2

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).

    
risposta data vimal krishna 09.09.2015 - 12:39

Leggi altre domande sui tag