it-swarm.com.de

Wie finde ich Dateien rekursiv nach Dateityp und kopiere sie in ein Verzeichnis, während ich mich in ssh befinde?

Ich möchte alle pdf Dateien in einem Ordner finden. Es enthält pdf Dateien und weitere Verzeichnisse, die ebenfalls mehr enthalten. Der Ordner befindet sich auf einem Remote-Server, auf den ich ssh-Zugriff habe. Ich benutze das Mac-Terminal, aber ich glaube, der Server, mit dem ich mich verbinde, ist Centos.

Ich muss alle pdfs finden und sie alle in ein Verzeichnis auf dem Fernbediener kopieren. Ich habe ungefähr 10 Variationen ohne Glück ausprobiert. Sowohl meine als auch die Remote-Systeme scheinen -exec nicht als Befehl zu erkennen, obwohl exec in Ordnung ist, so dass dies ein Problem ist.

Ich bin nicht sicher, was das Problem hier ist, aber der Befehl schlägt nicht fehl, er sitzt einfach da und bleibt für immer stehen, sodass ich keine nützlichen Fehler zum Posten habe.

cp $(find -name "*.pdf" -type f; exec ./pdfsfolder {} \; | sed 1q)

find: ./tcs/u25: Permission denied
find: ./tcs/u68: Permission denied
-bash: /var/www/html/tcs_dev/sites/default/files/pdfsfolder: is a directory
-bash: exec: /var/www/html/tcs_dev/sites/default/files/pdfsfolder: cannot execute: Success
cp: target `./runaways_parents_guide_2013_final.pdf' is not a directory

Dies ist der letzte Versuch, den ich unternommen habe. Ich glaube, ich kann die Fehler, denen die Erlaubnis verweigert wurde, vorerst ignorieren, bin mir aber im Übrigen nicht sicher.

44
lorless

Versuche dies:

find . -name "*.pdf" -type f -exec cp {} ./pdfsfolder \;
116
Paul Dardeau

Die Antwort von Paul Dardeau ist perfekt. Das Einzige ist, was passiert, wenn alle Dateien in diesen Ordnern keine PDF) - Dateien sind und Sie sie alle unabhängig von der Erweiterung abrufen möchten. Nun, ändern Sie sie einfach in

find . -name "*.*" -type f -exec cp {} ./pdfsfolder \;

Nur um es zusammenzufassen!

4
gadget

So etwas sollte funktionieren.

ssh [email protected] 'find -type f -name "*.pdf" -exec cp {} ./pdfsfolder \;'

4
ptierno