Comment copier dans bash tous les répertoires et fichiers récursifs?

137

J'ai un script:

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

SourceDir contient également des sous-dossiers.

Problème que DestFoldernon seulement dans tous les arbres, mais au niveau supérieur tous les autres niveaux et fichiers.

Comment réparer ?

user710818
la source
Désolé, j'ai oublié d'ajouter -name "* .txt"
user710818

Réponses:

289
cp -r ./SourceFolder ./DestFolder
Lanzz
la source
6
Donc, pour clarifier, l'option majuscule -R copiera à nouveau le répertoire racine; L'option small -r garde les chemins racine identiques.
AnneTheAgile
8
@AnneTheAgile - d'après mes tests tout à l'heure et d'après les pages de manuel, -r et -R ne diffèrent pas.
aaaaaa
@aaaaaa, ty! sur quel système d'exploitation / version êtes-vous? J'ai découvert plus tard qu'il semble que les commandes bash peuvent différer subtilement d'un système d'exploitation à l'autre.
AnneTheAgile
2
cpn'est pas une commande bash mais un exécutable séparé, il est donc spécifique au système. Les vraies commandes bash, en revanche, sont les mêmes sur tous les systèmes d'exploitation.
lanzz
52

code pour une copie simple.

cp -r ./SourceFolder ./DestFolder

code pour une copie avec résultat de réussite

cp -rv ./SourceFolder ./DestFolder

code for Forcefully si la source contient un fichier en lecture seule, il copiera également

cp -rf ./SourceFolder ./DestFolder

pour plus de détails aide

cp --help
user3708054
la source