Finden Sie mehrere Dateien und kopieren Sie echte Dateien von symlink

400
chepe lucho

Ich habe diese Frage gelesen, aber sie hat keine Antwort gegeben, und die Mine ist anders.

Linux: Der Versuch, Dateien rekursiv aus einer Liste zu finden und an eine andere Stelle zu kopieren

Ich versuche, die echten Dateien anhand von Symlinks dieser Dateien zu finden!

$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libX11.so" -o -iname "libXinerama.so" -o -iname "libXxf86vm.so" -o -iname "libatk-1.0.so" -o -iname "libc.so.6" -o -iname "libcairo.so" -o -iname "libdl.so" -o -iname "libgcc_s.so.1" -o -iname "libgdk-x11-2.0.so.0" -o -iname "libgdk_pixbuf-2.0.so" -o -iname "libglib-2.0.so" -o -iname "libgmodule-2.0.so" -o -iname "libgobject-2.0.so" -o -iname "libgthread-2.0.so" -o -iname "libgtk-x11-2.0.so.0" -o -iname "libjpeg.so" -o -iname "libm.so" -o -iname "libpango-1.0.so" -o -iname "libpangocairo-1.0.so" -o -iname "libpng.so" -o -iname "libpthread.so.0 " -o -iname "librt.so" -o -iname "libstdc++.so.6" -o -iname "libtiff.so.[3,5]" -o -iname "libz.so" 

Für diese Frage versuchte ich ein so kurzes Beispiel:

$ sudo find -L /usr/lib64 -iname "libSM.so" -o -iname "libz.so"  -o -iname "libtiff.so.[3,5]" -exec cp {} /usr/copy \; 

Der Ordner ist leer.

$ ls -al /usr/copy/ total 0 drwxr-xr-x. 2 root root 6 Feb 15 22:39 . drwxr-xr-x. 14 root root 167 Feb 15 21:33 .. 

Die zu kopierenden Dateien

$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libz.so" -o -iname "libtiff.so.[3,5]" /usr/lib64/libz.so /usr/lib64/libSM.so /usr/lib64/libtiff.so.5 /usr/lib64/libtiff.so.3 

Der Befehl!

$ sudo find /usr/lib64 -iname "libSM.so" -o -iname "libz.so" -o -iname "libtiff.so.[3,5]" -exec cp -L {} /usr/copy \; 

Das Ergebnis!

$ ls -al /usr/copy/ total 884 drwxr-xr-x. 2 root root 46 Feb 15 22:39 . drwxr-xr-x. 14 root root 167 Feb 15 21:33 .. -rwxr-xr-x. 1 root root 419456 Feb 15 22:39 libtiff.so.3 -rwxr-xr-x. 1 root root 479440 Feb 15 22:39 libtiff.so.5 $  

Nur die Kopie der letzten gefundenen Datei wird ausgeführt !!!

Wie geht das

0
Mögliches Duplikat von [Strange "find" Verhalten in Linux] (https://superuser.com/questions/966227/strange-find-behavior-in-linux) Kamil Maciorowski vor 6 Jahren 0
@ KamilMaciorowski Es ist ein schlechter Titel für eine Frage, wie muss ich meine Frage suchen? "etwas Seltsames passiert"? Die Frage muss das Ziel, die Fehlschläge und die Ergebnisse genauer beschreiben und der andere Beitrag hat diese nicht. chepe lucho vor 6 Jahren 0
Worauf willst du hinaus? Es ist schwierig, das Problem zu benennen, wenn Sie nicht bereits wissen, worum es sich handelt. Beachten Sie, dass auch Ihr aktueller Titel nicht perfekt ist. Symlinks spielen hier keine Rolle. ** Fühlen Sie sich frei, jeden Titel zu verbessern. ** Ihre Haltung scheint etwas defensiv zu sein, aber ich wollte Ihnen und zukünftigen Nutzern helfen, gute Antworten zu finden und das Thema zu verstehen. Wenn ich dachte, Sie hätten nicht genug recherchiert, hätte ich Ihre Frage abgelehnt. Kamil Maciorowski vor 6 Jahren 0
Ich kann den Titel einer anderen Person nicht ändern. Für mich ist diese Aktion invasiv. Möglicherweise wird die Frage an den Postinhaber weitergeleitet. Der Punkt ist, wie man etwas in einem anderen Beitrag verwandt findet, das keine Ahnung hat? (In der realen Welt) finden Sie kein Buch zum Kochen im Autohaus. chepe lucho vor 6 Jahren 0
Man kann die Fähigkeiten nicht vergleichen, um etwas zu finden, wo man 11K hat, wenn ich nur 120 habe. Diese Seite ist für erfahrene Leute und Neulinge (ich denke mal) ... Ich lächle (Riindome) über diese Kommentare. chepe lucho vor 6 Jahren 0
Auch anonyme Benutzer können einem Beitrag eine Bearbeitung vorschlagen. Die Bearbeitung wird von Benutzern mit ausreichendem Ruf überprüft, akzeptiert oder abgelehnt. Wenn Sie einen wirklich besseren Titel vorschlagen und Ihre Bearbeitungszusammenfassung "beschreibender Titel, jetzt einfacher zu finden" ist, wird dieser wahrscheinlich von der Community akzeptiert. An erster Stelle können Sie jedoch den Titel Ihrer Frage ändern (ohne dass Sie die Frage beantworten müssen, weil Sie die Frage besitzen). So kann beispielsweise der Befehl "find" die erwarteten Ergebnisse überspringen, wenn "-o" verwendet wird. Jeder, der Ihre Frage findet, kann meinem Link folgen, sodass der andere Titel keine Rolle spielt. Kamil Maciorowski vor 6 Jahren 0
Sie scheinen das persönlich zu behandeln, aber ich vergleiche unsere Fähigkeiten nicht. Wenn Sie auf ein Duplikat zeigen, bedeutet dies nicht unbedingt, dass Sie Ihre Recherche nicht bestanden haben. Es bedeutet "die Antwort ist schon da". Die Suche nach der anderen Frage fiel mir auch nicht leicht. Ich versuchte es, scheiterte, schrieb meine Antwort, hatte dieses nörgelnde Gefühl, dass die andere Frage da ist, härter gesucht. Wenn ich es beim ersten Versuch gefunden habe, würde ich mich nicht darum kümmern, meine Antwort zu schreiben. Kamil Maciorowski vor 6 Jahren 0
Ich werde hier über Superuser erfahren ... Danke. @ KamilMaciorowski chepe lucho vor 6 Jahren 0
Ich habe gerade den Titel der anderen Frage bearbeitet. Dies sollte zukünftigen Benutzern helfen. Danke für deinen Beitrag. Kamil Maciorowski vor 6 Jahren 0

1 Antwort auf die Frage

2
Kamil Maciorowski

man find auf meinem Kubuntu heißt es:

Bitte beachten Sie, dass -adie implizite Angabe (z. B. durch zwei Tests ohne expliziten Operator) oder explizit eine höhere Priorität hat als -o. Dies bedeutet, dass find . -name afile -o -name bfile -printniemals gedruckt wird afile.

Sie benötigen (entkommene) Klammern:

sudo find /usr/lib64 \( -iname "libSM.so" -o -iname "libz.so" -o -iname "libtiff.so.[3,5]" \) -exec cp -L {} /usr/copy \;