Zum Beispiel:
find /usr -type f -name "*.txt" -exec cp -r {} ~/txts/ \;
Funktioniert einwandfrei, wenn wir vorhandene Verzeichnis-TXTs haben.
Soweit ich das verstehe -cp hat keine Flaggenum diesen Fall zu lösen. Vielleicht sollte ich rsync oder etwas anderes verwenden?
Antwort1
Gute Frage, Sie könnten Folgendes versuchen:
Zuerst cd
in /usr
. Das liegt daran, dass die Verwendung eines absoluten Pfads (wie /usr
) mit find
meiner Vermutung dazu führen wird, {}
dass vollständige Pfade enthalten sind.
find . -type f -a -name "*.txt" -a -exec install -D {} ~/texts/{} \;
Beim Ausführen dieses Befehls erhalte ich die folgende Fehlermeldung:
find: './share/doc/google-chrome-stable': Berechtigung verweigert
Die Fehlermeldung bedeutet nicht, dass der Vorgang insgesamt fehlgeschlagen ist, sondern nur, dass find
der Befehl im Verzeichnis nicht ausgeführt werden konnte ./share/doc/google-chrome-stable
.
Bei mir wurden jedoch alle anderen Dateien und ihre Pfade kopiert und die Verzeichnispfade nach Bedarf erstellt.
Bei weiterer Untersuchung wurde die Fehlerursache
% ls -al --directory ./share/doc/google-chrome-stable
drwx------ 2 root root 4096 Aug 21 12:45 ./share/doc/google-chrome-stable