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 ?


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

Réponses:


289
cp -r ./SourceFolder ./DestFolder

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.