Je suis en train de migrer mon répertoire personnel d'un ancien système vers un nouveau, et l'archive tarball que j'ai créée contient tout, y compris les fichiers cachés comme .bashrc. Cependant, lorsque je déplace le contenu de l'archive déballée (qui se trouve dans /tmp) vers mon nouveau répertoire personnel, les fichiers cachés ne sont pas copiés ( mv /tmp/home/rcook/* /home/rcook/
). Comment puis-je faire en sorte que mv les déplace ?
En fait, je pense que le problème n'est pas avec mv, mais avec le globbing 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 faire pour que le joker * trouve les 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 être sûr que j'écrase la nouvelle .bashrc
etc. avec les anciennes versions personnalisées, et savoir comment trouver et déplacer les fichiers cachés est une compétence utile. Des suggestions ?
Certaines réponses suggèrent de faire quelque chose comme mv src/.* dest/
. Cependant, j'ai essayé cela sur mes répertoires de test et j'ai obtenu des erreurs. En 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 de mal ?