Dies ist eine etwas peinliche Frage, aber ich muss zugeben, dass ich in meiner späten Karriere immer noch Fragen zum Befehl mv habe.
Ich habe häufig das Problem, dass ich alle Dateien rekursiv um eine Ebene nach oben verschieben muss. Nehmen wir an, ich habe Ordner foo und eine Ordnerleiste darin. Bar hat ein Durcheinander von Dateien und Ordnern, einschließlich Punktdateien und -ordnern. Wie verschiebe ich alles in bar auf das foo-Level?
Wenn foo leer ist, verschiebe ich einfach den Balken eine Ebene darüber, lösche foo und benenne den Balken in foo um. Ein Teil des Problems ist, dass ich nicht herausfinden kann, was der Platzhalter von mv für "alles einschließlich Punkte" ist. Ein Teil dieser Frage ist folgende: Gibt es eine eingehende Diskussion der Platzhalter, die cp- und mv-Befehle irgendwo verwenden (googeln bringt nur sehr grundlegende Tutorials mit sich)?
quelle
To eliminate the error caused by also matching "." and "..", use this command: mv bar/{,.[!.],..?}* .
Der einfachste Weg, dies zu tun, besteht darin, es mit zwei Befehlen zu tun, da * nicht übereinstimmt
Du willst nicht bar /.* benutzen, was ich herausgefunden habe, als ich diesen Fehler begangen habe:
Dies ist eine schlechte Sache. Möchte jemand raten warum? ;-)
quelle
.*
zu.
und ausdehnen..
. Zsh jedenfalls nicht für mich.Das erste, was Sie über Globbing wissen sollten - es wird von der Shell ausgeführt, nicht vom Befehl. Überprüfen Sie die Manpage Ihrer Shell auf alle Details.
quelle
Dieser sammelt alle Dateien aus Unterordnern und verschiebt sie in das aktuelle Verzeichnis
Wenn Sie Dateien mit demselben Namen erstellen möchten, verwenden Sie
quelle
mv .??* *
kümmert sich um alles außer Punkt, gefolgt von einem einzelnen Zeichen. Wenn das für Ihre Situation üblich ist, können Sie hinzufügen.[a-zA-Z0-9]*
. Das wird noch Dateien mit Namen lassen wie.;
,.^
und.^I
(tab). Wenn Sie mit allem fertig werden müssen, müssen Sie etwas komplexer sein.quelle
Wenn Sie eine Verzeichnisstruktur haben
/foo/bar/
und alle Dateien inbar
einem Schritt oben verschieben möchten , gehen Sie in dasbar
Verzeichnis und geben Sie Folgendes ein:Im Allgemeinen denke ich,
cpio(1)
ist für diese Art von Aufgaben besser. Sie können die detaillierte Dokumentation überprüfen, indem Sie sieinfo cpio
in Ihrer Shell ausgeben .quelle