GNU/Linux >> Tutoriels Linux >  >> Linux

Comment copier des fichiers et des sous-répertoires cachés (commençant par un point) sous Linux ?

Tant que vous ne cherchez que des fichiers et dossiers cachés au niveau A et que vous ne voulez pas, par exemple

A/b/.hidden

pour être copié, vous devriez pouvoir utiliser ceci :

cp -r A/.[^.]* B

Cela signifie essentiellement copier tout ce qui commence par un . puis tout caractère autre qu'un . Cela filtre . et ..

Edit :Suppression du -p de la commande cp car Asker n'a pas indiqué qu'il souhaitait conserver les propriétés, les dates, etc.


Le problème avec A/.* c'est qu'il y a le répertoire . en A qui correspond également au motif.

Vous pouvez activer les modèles glob étendus et utiliser les éléments suivants :

shopt -s extglob
cp -r A/.!(?(.)) B    

Il correspond aux fichiers dont le nom commence par un point et dont le deuxième caractère n'est ni un point ni rien ( ?(.) correspond à rien ou à un point, !(...) l'annule, c'est-à-dire !(?(.)) correspond à tout le reste que rien ou un point).


Pour des cas comme celui-ci, nous vous recommandons d'utiliser find au lieu de cp comme ceci :

find A/ -type f -maxdepth 1 -name '.*' -exec cp -p {} B/ \;

La syntaxe de base se décompose comme suit :

  • find A/ -type f :find éléments du répertoire A/ dont le type est un fichier (au lieu d'un répertoire)…
  • -maxdepth 1 -name '.*' :A ceci pour un maxdepth de 1 répertoires et dont name commence par . .
  • -exec cp -p {} B/ \; :Et une fois ces fichiers trouvés, exec le cp commande avec un -p drapeau pour conserver les dates/heures de la source ({} ) à la destination de B/ .

J'aime utiliser maxdepth pour ajouter une couche de contrôle afin de ne pas copier accidentellement un système de fichiers entier. Mais n'hésitez pas à le supprimer.


Linux
  1. Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

  2. Comment compresser des fichiers et des répertoires sous Linux (avec exemples)

  3. Comment transférer des fichiers sous Linux avec SCP et Rsync

  4. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

  5. Comment copier un fichier dont le nom commence par un point ?

Comment renommer des fichiers et des répertoires sous Linux

Comment compresser des fichiers et des répertoires sous Linux

Comment copier des fichiers et des répertoires sous Linux

Comment copier un grand nombre de fichiers sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment afficher les fichiers cachés sous Linux