Je migre mon répertoire personnel d'un ancien système vers un nouveau et l'archive que j'ai créée contient tout, y compris des fichiers cachés tels que .bashrc. Cependant, lorsque je déplace le contenu de l'archive tar décompressée (qui se trouve dans / tmp) vers mon nouveau répertoire de base, les fichiers cachés ne sont pas copiés ( mv /tmp/home/rcook/* /home/rcook/
). Comment puis-je obtenir pour les déplacer?
En fait, je pense que le problème ne vient pas de mv, mais de bash. Si je fais ça:
mkdir a
mkdir b
touch a/.foo
touch a/bar
mv a/* b/
ls -a a/ b/
Je vois ça:
a/:
. .. .foo
b/:
. .. bar
a/.foo
n'a pas bougé. Alors, comment puis-je obtenir le caractère générique * pour trouver des fichiers cachés?
Oui, je suppose que je pourrais décompresser l'archive directement dans mon répertoire personnel, mais l'archive se décompresse en home/rcook/...
, et je veux m'assurer d'écraser les nouvelles .bashrc
, etc. avec les anciennes versions personnalisées et savoir comment trouver et déplacer les fichiers cachés. est une compétence utile. Suggestions?
Certaines réponses suggèrent de faire quelque chose comme mv src/.* dest/
. Cependant, j'ai essayé ceci sur mes répertoires de test et j'ai eu des erreurs. Commençant par:
rcook$ ls -a a/ b/
a/:
. .. bar .foo
b/:
. ..
rcook$ mv a/.* b/
mv: cannot move 'a/.' to 'b/.': Device or resource busy
mv: cannot remove 'a/..': Is a directory
rcook$ ls -a a/ b/
a/:
. .. bar
b/:
. .. .foo
Qu'est-ce que je fais mal?