cp -r sans fichiers cachés


89

J'ai deux répertoires et un est vide.

Le premier répertoire contient de nombreux sous-répertoires avec des fichiers cachés. Lorsque je cp -rcontiens du premier répertoire au second, les fichiers cachés sont également copiés. Des solutions pour leur échapper?


c'est faisable, mais les supprimer après la copie pourrait être plus simple
Karoly Horvath

6
oui, mais copier les fichiers cachés vers d'autres emplacements est un risque de sécurité dans mon cas.
Rahul

Réponses:


127

Vous pouvez utiliser rsync:

rsync -av --exclude=".*" src dest

1
Des frais généraux par rapport à cp?
Rahul

2
@Rahul Il ne m'est pas venu à l'esprit de le comparer, mais je pense que vous ne devriez pas vous en soucier
Eugene Yarmash

3
Ça marche bien! Merci mec! Juste pour information, rsync serait génial lorsque la taille du fichier est grande, mais égale à cp dans le cas des fichiers plus petits.
Rahul

26

Tu peux faire

cp -r SRC_DIR/* DEST_DIR

pour exclure tous les .files et .dirs du niveau SRC_DIR, mais il copierait tout de même tous les fichiers cachés dans le niveau suivant des sous-répertoires.


6
C'est exactement le problème .. :)
Rahul

9
Mais cela fonctionne pour GIT-Repos, si vous ne voulez pas copier tout l'index GIT dans .git / ...
Sedat Kilinc

1
J'ai + 'd cette réponse car c'est la solution que je cherchais. Je ne veux pas exclure tous les invisibles de l'arbre, juste les invisibles au niveau de la racine!
l008com

Une autre variante cp SOURCE/[!.]* TARGET.
Carel

4

rsync a l'option "-C"

http://rsync.samba.org/ftp/rsync/rsync.html

Exemple:

rsync -vazC  dir1 dir2

Tu as raison. J'ai essayé mkdir -p dir1 / subdir; touchez dir1 / subdir / .cvs; rsync -avzC dir1
dir2

rsync -av --exclude = ". *" src dest fonctionne très bien. Reportez-vous la réponse ci-dessus par eugène. Merci quand même! :)
Rahul
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.