So verschieben Sie nur Dateien in Unix

Wie kann ich nur die einfachen Dateien (nicht die Verzeichnisse) mit dem Befehl mv von einem Ordner in Linux in einen anderen Ordner verschieben?

Ich habe versucht, mv * ~/, aber es kopiert alles einschließlich der Verzeichnisse.

Author: Scott, 2009-11-04

6 answers

Sie können versuchen

find . -maxdepth 1 -type f -exec mv {} destination_path \;
 34
Author: Mereghost,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-04 18:23:28

Ich bin ein "hammer verwendet werden für alles, was" irgendwie Kerl, also ich benutze bourne-shell-Programme für Sachen, die andere Nutzung externe Programme für die...

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, also ist es nicht zu viel Schmerz, dies zu tun, anstatt die genauen Argumente zu finden und zu exec und all das.

YMMV, aber...

 4
Author: chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-04 16:06:13

@Mereghost ist sehr nah. Hier ist, was ich bekomme, um alle Dateien (einschließlich versteckter Dateien) zu verschieben, aber keine Verzeichnisse:

find . -maxdepth 1 -type f -name '*' -exec mv -n {} /destination_path \;

Das . nach dem Suchen geht davon aus, 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 \;
 4
Author: teancum144,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-07-15 19:21:02

Wenn Sie keine Ordner mit Namen mit Punkt darin haben, können Sie alle einfach verschieben:

Mv . ~ / zielordner

(Meine Annahme ist, dass alle Ihre Dateien etwas sind.etwas (in meinem Fall sind alle normalerweise))

ABER dank anderer Antworten-sehr hilfreich. THX -

 0
Author: Shawor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-03-21 08:55:04

Sie können find

find * -maxdepth 1 -type f -exec mv {} ~ \;
 -1
Author: John T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-04 15:53:32

Mv " finden ./ sourcedir / * - Typ f` ./destdir

 -2
Author: Cm57201,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-03-08 19:58:40