Du kannst es versuchen
find . -maxdepth 1 -type f -exec mv {} destination_path \;
Wie kann ich mit dem mv
Befehl nur die einfachen Dateien (nicht die Verzeichnisse) von einem Ordner in Linux in einen anderen Ordner verschieben ?
Ich habe es versucht mv * ~/
, aber es kopierte alles inklusive der Verzeichnisse.
Du kannst es versuchen
find . -maxdepth 1 -type f -exec mv {} destination_path \;
Ich bin ein Hammer für alles, also benutze ich Bourne-Shell-Programme für Dinge, die andere für externe Programme verwenden.
for file in * .* do test -f "$file" && mv "$file" "$HOME"/ done
Einige Leute mögen es, Dinge so wenig wie möglich zu erledigen, aber ich bin eine ziemlich schnelle Schreibkraft, und ich habe solche Sachen in mein Gehirn eingebaut, so dass es nicht zu schmerzhaft ist, dies zu tun, anstatt genau nachzuschauen Argumente zu finden und exec und all das.
YMMV, obwohl ...
@Mereghost ist sehr nahe. Folgendes bekomme ich, um alle Dateien (einschließlich versteckter Dateien) zu verschieben, jedoch keine Verzeichnisse:
find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;
Das .
after find nimmt an, dass das aktuelle Verzeichnis die Quelle der Dateien ist, die Sie verschieben möchten. Wenn nicht, kann der Befehl wie folgt überarbeitet werden:
find /source_path -maxdepth 1 -type f -name '*' -exec mv -n {} /dest_path \;
Wenn Sie nur reguläre Dateien und keine versteckten Dateien verschieben möchten:
find . -maxdepth 1 -type f -name '[!.]*' -exec mv -n {} /dest_path \;
Wenn Sie nur versteckte Dateien und keine regulären Dateien verschieben möchten:
find . -maxdepth 1 -type f -name '.*' -exec mv -n {} /dest_path \;
Sie können find verwenden
find * -maxdepth 1 -type f -exec mv {} ~ \;
mv `find ./sourcedir/* -type f` ./destdir