Unix - copia il contenuto di una directory in un'altra [chiuso]


90
Folder1/
    -fileA.txt
    -fileB.txt
    -fileC.txt

> mkdir Folder2/

> [copy command]

E ora Folder2/sembra:

Folder2/
    -fileA.txt
    -fileB.txt
    -fileC.txt   

Come farlo accadere? Ho provato cp -r Folder1/ Folder2/ma sono finito con:

Folder2/
    Folder1/
        -fileA.txt
        -fileB.txt
        -fileC.txt

Che è vicino ma non esattamente quello che volevo.

Grazie!

Risposte:


124

Prova questo:

cp Folder1/* Folder2/

3
ma questo non copierà i file nascosti, giusto?
Fabrizio Regini

9
Corretta. cp -Rlo farà, ma verrà copiato ricorsivamente, quindi potresti o meno volerlo utilizzare. Potresti fare cp Folder1/.* Folder2/per copiare solo i file nascosti.
Geoff

1
Nota che questo fallirà se stai usando "sudo" o un equivalente e la directory contiene molti file. Capiscosudo: unable to execute /bin/cp: Argument list too long
Nathan Osman

nota che SCP ha una sintassi leggermente diversa, vedi qui: stackoverflow.com/a/26346339/1984636
sivi

Non farlo. Eseguire "cp -rT src dest" su Linux o "cp -R src / dest" su BSD.
xpusostomos

47

Abbastanza semplice, con un *carattere jolly.

cp -r Folder1/* Folder2/

Ma secondo il tuo esempio la ricorsione non è necessaria, quindi sarà sufficiente quanto segue:

cp Folder1/* Folder2/

MODIFICARE:

Oppure salta la mkdir Folder2parte e corri:

cp -r Folder1 Folder2

Se ls | sort -k1.5 | head -8 > folder1poi come farlo?
Pooja

Hai appena perso tutti i tuoi file nascosti. Non farlo. Eseguire "cp -rT src dest" su Linux o "cp -R src / dest" su BSD.
xpusostomos

23

Per fare una copia esatta, i permessi, la proprietà e tutto usa "-a" con "cp". "-r" copierà il contenuto dei file ma non necessariamente manterrà le altre cose uguali.

cp -av Sorgente / * Dest /

(assicurati che Dest / esista prima)

Se vuoi aggiornare ripetutamente da uno all'altro o assicurarti di copiare anche tutti i dotfile, rsyncè di grande aiuto:

rsync -av --delete Source / Dest /

Questo è anche "recuperabile" in quanto puoi riavviarlo se lo interrompi durante la copia. Mi piace "-v" perché ti permette di vedere cosa sta succedendo ma puoi ometterlo.


1
a cosa serve -v?
HattrickNZ

verboso, solo per vedere cosa sta succedendo.
Brian White

1
Se hai molti file, l' -vopzione può richiedere del tempo. Se non hai bisogno dell'output usa -asolo.
Eyal Levin

1
Dovresti essere in esecuzione su una connessione di rete piuttosto lenta affinché la copia venga rallentata dall'output di testo. E anche in questo caso, probabilmente sarebbe solo il ritorno del prompt dei comandi, non la copia stessa.
Brian White

Hai perso i tuoi file nascosti. Eseguire "cp -rT src dest" su Linux o "cp -R src / dest" su BSD.
xpusostomos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.