Come copiare in bash tutte le directory e i file ricorsivi?


137

Ho una sceneggiatura:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir contiene anche sottocartelle.

Problema che DestFoldernon solo in tutti gli alberi, ma a livello superiore tutti gli altri livelli e file.

Come risolvere ?


Siamo spiacenti,
ho

Risposte:


289
cp -r ./SourceFolder ./DestFolder

6
Quindi, per chiarire, l'opzione -R maiuscola copierà di nuovo la directory principale; L'opzione small -r mantiene i percorsi root uguali.
AnneTheAgile,

8
@AnneTheAgile - dai miei test proprio ora e secondo le pagine man, -r e -R non differiscono.
aaaaaa,

@aaaaaa, ty! su quale sistema operativo / versione sei? Ho scoperto in seguito che i comandi bash possono differire sottilmente tra i sistemi operativi.
AnneTheAgile,

2
cpnon è un comando bash ma un eseguibile separato, quindi è specifico del sistema. I veri comandi bash invece sono gli stessi tra i sistemi operativi.
lanzz,

52

codice per una semplice copia.

cp -r ./SourceFolder ./DestFolder

codice per una copia con esito positivo

cp -rv ./SourceFolder ./DestFolder

codice per Forcefully se l'origine contiene file di sola lettura, verrà copiato anche

cp -rf ./SourceFolder ./DestFolder

per informazioni dettagliate

cp --help
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.