Eine umfassende Reihe von Lösungen hierzu finden Sie in der Antwort von UNIX & Linux auf Wie verschieben Sie alle Dateien (einschließlich versteckter Dateien) von einem Verzeichnis in ein anderes? . Es zeigt Lösungen in Bash, zsh, ksh93, Standard (POSIX) sh usw.
Sie können diese beiden Befehle zusammen verwenden:
mv /path/subfolder/* /path/ # your current approach
mv /path/subfolder/.* /path/ # this one for hidden files
Oder alle zusammen ( danke pfnuesel ):
mv /path/subfolder/{.,}* /path/
Welches erweitert sich zu:
mv /path/subfolder/* /path/subfolder/.* /path/
(Beispiel: echo a{.,}b
erweitert auf a.b ab
)
Beachten Sie, dass hier einige Warnungen angezeigt werden:
mv: cannot move ‘/path/subfolder/.’ to /path/.’: Device or resource busy
mv: cannot remove /path/subfolder/..’: Is a directory
Sich einfach ignorieren: dies geschieht , weil /path/subfolder/{.,}*
auch erweitert zu /path/subfolder/.
und /path/subfolder/..
, die das Verzeichnis und das übergeordnete Verzeichnis (siehe Was tun und „..“ bedeuten , wenn sie in einem Ordner „“? ).
Wenn Sie nur kopieren möchten, können Sie nur Folgendes verwenden:
cp -r /path/subfolder/. /path/
# ^
# note the dot!
Dadurch werden alle normalen und versteckten Dateien kopiert, da sie /path/subfolder/.
auf "Alles aus diesem Verzeichnis" erweitert werden (Quelle: Wie kopiere ich mit cp, um versteckte Dateien und versteckte Verzeichnisse sowie deren Inhalt einzuschließen? )
cp -r /path/to/source/. /destination