Ich migriere mein Home-Verzeichnis von einem alten auf ein neues System, und der von mir erstellte Tarball enthält alles, einschließlich versteckter Dateien wie .bashrc. Wenn ich jedoch den Inhalt des entpackten Tarballs (der sich in / tmp befindet) in mein neues Ausgangsverzeichnis verschiebe, werden die versteckten Dateien nicht kopiert ( mv /tmp/home/rcook/* /home/rcook/
). Wie kann ich mv dazu bringen, sie zu bewegen?
Eigentlich glaube ich, dass das Problem nicht bei mv liegt, sondern bei bashs Globbing. Wenn ich das mache:
mkdir a
mkdir b
touch a/.foo
touch a/bar
mv a/* b/
ls -a a/ b/
Ich sehe es:
a/:
. .. .foo
b/:
. .. bar
a/.foo
bewegte sich nicht. Wie kann ich den Platzhalter * zum Auffinden versteckter Dateien verwenden?
Ja, ich nehme an, ich könnte den Tarball direkt in mein Home-Verzeichnis dekomprimieren, aber der Tarball wird in dekomprimiert home/rcook/...
, und ich möchte sicher sein, dass ich den neuen .bashrc
usw. mit den alten angepassten Versionen überschreibe und weiß, wie man versteckte Dateien findet und verschiebt ist eine lohnende Fähigkeit. Vorschläge?
Einige Antworten schlagen vor, so etwas zu tun mv src/.* dest/
. Ich habe dies jedoch in meinen Testverzeichnissen versucht und Fehler festgestellt. Beginnen mit:
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
Was mache ich falsch?