Ich möchte wissen, wie ich alle Dateien von einem Ordner in einen anderen Ordner mit einer Befehlszeile verschieben kann.
Angenommen, ich befinde mich in meinem Downloads-Ordner und es gibt 100 Dateien, die ich in meinen Videos-Ordner verschieben möchte, ohne alle Dateinamen eingeben zu müssen.
command-line
Michael
quelle
quelle
files
aber die Leute zeigen dir, wie man sich nicht nur bewegt,files
sondernfolders
auch. Ist das in Ordnung?Antworten:
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:
Alle Dateien und Ordner werden vom Ordner "Downloads" in den Ordner "Videos" verschoben.
So verschieben Sie alle Dateien, jedoch keine Ordner:
Wenn Sie alle Dateien (aber keine Ordner) aus dem Ordner "Downloads" in den Ordner "Videos" verschieben möchten, verwenden Sie diesen Befehl
So verschieben Sie nur Dateien aus den Download-Ordnern, nicht jedoch aus Unterordnern:
Wenn Sie alle Dateien aus dem Download-Ordner verschieben möchten, jedoch keine Dateien in Ordnern im Download-Ordner, verwenden Sie diesen Befehl:
Hier gibt die
-maxdepth
Option an, wie tief der Suchvorgang ausgeführt werden soll. Dies1
bedeutet, dass nur das im Befehl find angegebene Verzeichnis verwendet wird. Sie können versuchen2
,3
auch zu testen.Eine ausführliche Erklärung finden Sie in der Ubuntu Find-Manpage
quelle
-print0 | xargs -0 mv -t ~/Videos
können effizienter erledigt werden mit-exec mv -t ~/Videos \{\} \+
:-)mv -v ~/Downloads/* ~/Videos/
funktioniert nicht für versteckte DateienEs werden alle Dateien einschließlich der Unterordner in das gewünschte Verzeichnis verschoben
mv
. Wenn Siecp
(kopieren) oderrm
(entfernen) möchten, benötigen Sie die-r
Option (rekursiv), um Unterordner einzuschließen.quelle
mv
benötigt keine rekursive Option, um Unterordner einzuschließen . Man kann es auch zum Umbenennen verwenden.Für den einfachen Fall:
Wenn Sie auch (versteckte) Punktdateien verschieben möchten, setzen Sie die Option dotglob shell.
Dadurch bleibt der Shell-Optionssatz erhalten.
Führen Sie bei einmaliger Verwendung von dotglob die Befehle in einer Subshell aus:
quelle
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
nur bewegt (cuts) der Inhalt (einschließlich der versteckten Dateien). In diesem Fall müssen der Ursprungs- und der Zielordner bereits vorhanden sein. Am Ende wird das Ursprungsverzeichnis leer.Dies
rsync
ist zum Beispiel möglich mit :wo:
Wenn Sie über Root-Berechtigungen verfügen
sudo
, setzen Sie ein Präfix mit , um potenzielle Berechtigungsprobleme zu überschreiben.quelle
Verwenden
Ich hoffe das hilft. Weil ich die gleichen Schmerzen hatte und viel Zeit damit verschwendete, meinen Fehler zu beheben.
quelle
So verschieben Sie ein Verzeichnis mit oder ohne Inhalt in den neuen Namen, so wie Sie den
mv
Befehl zum Umbenennen einer Datei verwenden würden:mv -T dir1 dir2
wo:
-T
behandelt das Ziel als normale Dateidir1
ist der ursprüngliche Name des Verzeichnissesdir2
ist der neue Name des VerzeichnissesNB:
dir2
muss nicht existieren.Ich hoffe, dies spart jemandem viel Zeit, als Anfänger, bevor ich ein Verzeichnis mit dem neuen Namen erstellen und dann den Inhalt des Verzeichnisses in das zuvor erstellte Verzeichnis verschieben würde.
Verwenden Sie für Unterverzeichnisse
Dieser Befehl ist nützlich, wenn viele Dateien in einem Unterordner des Zielverzeichnisses gespeichert wurden, z
Downloads/mp4
. In diesem Beispiel führt das Ausführenmv -T Downloads/mp4 Videos
dazu, dass dermp4
Unterordner entfernt wird und alle darin enthaltenen Dateien in den Ordner "Videos" verschoben werden.quelle
dir1
Entfernen von bewirkt . Abgesehen von dieser Vorsichtsmaßnahme hat diese Antwort etwas Gutes für den täglichen Gebrauch festgestellt.mv fileA fileB
das-T
Flag in diesem Fall das Ziel / Verzeichnis als Datei behandeln und umbenennen.cd folderNamehere
pwd
. Dadurch wird das Verzeichnis gedruckt, in das Sie es auch verschieben möchten.cd folderNamehere
mv *.* typeAnswerFromStep2here
Dadurch werden alle Dateien von diesem Verzeichnis in das andere verschoben.
quelle
foo.txt
,bar.
undbar
beidebar.
undbar
wird nicht verschoben. Verwenden*
statt*.*
kümmert sich darum. Aber in beiden Fällen werden versteckte Dateien wie:.foobar
nicht verschoben.Hier müssen Sie einen Schrägstrich und
*
nach dem Quellpfad einfügen, damit Dateien innerhalb des Quellpfads anstelle des vollständigen Quellverzeichnisses verwendet werden.Beispiel:
mv /home/username/test/* /home/username/test2/
Der obige Befehl verschiebt alle Dateien (sofern sie nicht ausgeblendet sind) im Quellverzeichnis in das Zielverzeichnis.
quelle
Versuch es
-type mit dem Argument -type können Sie den Typ file.on dieser Anweisung angeben, die die mittlere Datei.if ist, wobei -d das Verzeichnis bedeutet.
-iname: Die häufigste und naheliegendste Methode zum Suchen einer Datei ist die Verwendung des Arguments -name. Wenn Sie sich nicht sicher sind, ob die Groß- und Kleinschreibung beachtet werden soll, können Sie das Argument -iname verwenden
mv {} und schließlich, um das Zielverzeichnis anzugeben und die Dateien dann mit dem Argument mv {} dorthin zu verschieben
quelle