GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

xargs wird üblicherweise dafür verwendet und mv unter Linux hat einen -t Option, um dies zu erleichtern.

find ./ -name '*article*' | xargs mv -t ../backup

Wenn Ihr find unterstützt -exec ... \+ könntest du genauso machen

find ./ -name '*article*' -exec mv -t ../backup {}  \+

Die -t Option ist eine GNU-Erweiterung, daher ist sie nicht auf Systeme portierbar, die nicht über GNU coreutils verfügen (obwohl jedes richtige Linux, das ich gesehen habe, das hat, mit der möglichen Ausnahme von Busybox). Für vollständige POSIX-Portabilität ist es natürlich möglich, Ihren eigenen Ersatz zu rollen, vielleicht so etwas wie

find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+

wo wir schamlos die praktische Tatsache missbrauchen, dass das erste Argument nach sh -c 'commands' endet als Parameter "Skriptname" in $0 sodass wir nicht einmal shift brauchen es.

Siehe wahrscheinlich auch https://mywiki.wooledge.org/BashFAQ/020


find ./ -name '*article*' -exec mv {}  ../backup  \;

ODER

find ./ -name '*article*' | xargs -I '{}' mv {} ../backup

Linux
  1. So finden Sie die älteste Datei in einem Verzeichnisbaum in Linux

  2. Linux:So finden Sie den für ein Gerät verwendeten Gerätetreiber

  3. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  4. So finden Sie alle Sparse-Dateien in Linux

  5. So finden Sie die Socket-Puffergröße von Linux

So finden Sie den gemounteten Dateisystemtyp in Linux

So finden Sie die IP-Adresse unter Linux

So finden Sie den Hostnamen unter Linux

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

So finden Sie die Liste der installierten Repositories in Linux