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.