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.