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

Ist es möglich, die Ergebnisse von FIND an einen COPY-Befehls-CP weiterzuleiten?

Es gibt eine wenig genutzte Option für cp :-t destination -- siehe Manpage:

find . -iname "*.SomeExt" | xargs cp -t Directory

Sie können | verwenden wie unten:

find . -iname "*.SomeExt" | while read line
do
  cp $line DestDir/
done

Beantwortung Ihrer Fragen:

  • | kann verwendet werden, um dieses Problem zu lösen. Aber wie oben gesehen, beinhaltet es eine Menge Code. Außerdem | erstellt zwei Prozesse - einen für find und eine weitere für cp .

  • Verwenden Sie stattdessen exec() innerhalb von find löst das Problem in einem einzigen Vorgang.


Gute Frage!

  1. warum kannst du nicht einfach | verwenden Rohr? ist das nicht wofür?

Sie können natürlich xargs pipen wird für diese Fälle durchgeführt:

find . -iname "*.SomeExt" | xargs cp Destination_Directory/
  1. Warum empfiehlt jeder die -exec

Die -exec ist gut, weil es mehr Kontrolle darüber bietet, was Sie genau ausführen. Beim Pipen kann es zu Problemen mit Groß- und Kleinschreibung kommen:Dateinamen mit Leerzeichen oder Zeilenumbrüchen etc.

  1. Woher weiß ich, wann ich das (exec) über Pipe | verwenden soll ?

Es liegt wirklich an Ihnen und es kann viele Fälle geben. Ich würde -exec verwenden wann immer die auszuführende Aktion einfach ist. Ich bin kein sehr guter Freund von xargs , bevorzuge ich eher einen Ansatz, bei dem find Die Ausgabe erfolgt an while Schleife, wie zum Beispiel:

while IFS= read -r result
do
    # do things with "$result"
done < <(find ...)

Linux
  1. Eine Anleitung zum Linux-Befehl „Suchen“.

  2. Gibt md5sum der Ergebnisse eines Find-Befehls in Linux aus

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

  4. Finden Sie heraus, welcher Prozess sich am anderen Ende einer Pipe befindet

  5. So ändern Sie die Dateien basierend auf den Ergebnissen des Befehls find

So finden Sie Dateien mit dem fd-Befehl in Linux

Beheben Sie den Fehler, dass der Befehl hwmatch auf Grub nicht gefunden werden kann

Finden Sie die Befehlszeile?

15 super nützliche Beispiele für den Find-Befehl in Linux

Sicheres Kopieren von Dateien mit dem SCP-Befehl

Der Linux-Befehl zum Suchen des Verzeichnisses:Erklärt