GNU/Linux >> Tutoriels Linux >  >> Linux

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

La raison est que dans bash , * n'inclut pas les fichiers commençant par un point (. ).

Vous pouvez courir

cp A/.* B

Il vous avertira qu'il n'a pas copié . ou .. , ou n'importe quel sous-répertoire, mais ça va.

Ou, si vous voulez copier des fichiers de points et des fichiers normaux ensemble, exécutez

cp A/.* A/* B

Vous pouvez également courir

shopt -s dotglob
cp A/* B

qui fonctionnera en bash , mais pas sh .

Et si cela ne vous dérange pas que les sous-répertoires soient également copiés, alors c'est le plus simple :

cp -R A/ B

Astuce :Si jamais les caractères génériques ne font pas ce que vous attendez, essayez de les exécuter avec echo, par exemple

$ echo A/*
A/file1 A/file2

$ echo A/.*
A/. A/.. A/.hidden1 A/.hidden2

$ echo A/.* A/*
A/. A/.. A/.hidden1 A/.hidden2 A/file1 A/file2

$ shopt -s dotglob
$ echo A/*
A/file1 A/file2 A/.hidden1 A/.hidden2

Si bash, vous pouvez définir dotglob avant de copier

shopt -s dotglob
cp A/* /destination

Ou un langage de programmation

$ ruby -rfileutils -e  'Dir[".*"].each {|x| FileUtils.copy(x,"/destination") if File.file?x}'

Si vous ne voulez pas définir dotglob, juste

cp A/.* /destination 2>/dev/null

Ce que vous recherchez est plus dans le sens de :

cp A/.??* B/

Cela correspondra à tous les fichiers de points, mais pas à "." ou "..". La plupart des solutions ci-dessus conviennent tant que vous ne travaillez pas de manière récursive. Mais dès que vous voulez faire quelque chose comme :

cp -R A/.??* B/

Sans omettre "..", vous copierez tout depuis le répertoire parent vers le bas, y compris les fichiers non-dot.


Linux
  1. Comment créer un fichier avec une taille donnée sous Linux ?

  2. Comment écrire un fichier avec C sous Linux ?

  3. Comment remplir un fichier avec FF en utilisant dd ?

  4. Comment copier une image ISO sur USB avec dd

  5. Comment supprimer un fichier avec un nom bizarre ?

Comment utiliser la commande Linux rm avec des exemples

Comment réparer une erreur de conversion avec Calibre

Comment copier un fichier avec une seule commande dans plusieurs répertoires sous Linux

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment gérer les noms de fichiers avec des espaces sous Linux

Comment copier un fichier dans le gestionnaire de fichiers