find

jemand anders

Erfahrenes Mitglied
Hallo,

ich habe folgendes Kommando:

Code:
find /home/user1 -type f -name 'MUSTER' > string1 + /home/user1/output.txt + string2

Weiß jemand, wie die korrekte Syntax lautet um string1 vor und string2 nach dem Output hinzuzufügen, so dass ich folgendes Ergebnis erhalte:
Code:
string1 /home/user1/file1.txt string2
string1 /home/user1/file2.txt string2
string1 /home/user1/file3.txt string2
...
...

Gruß
 
Hi,

wie wäre es mit:
Bash:
find /home/user1 -type f -name 'MUSTER' | while read line; do echo "string1 $line string2"; done

Grüsse,
BK
 
Danke dir, aber eigentlich soll der Output in einen File, der dann verarbeitet werden soll.

Hintergund:
Wie ich schon mal geschrieben habe, sind auf meinem Rechner - vermutlich durch einen Fehler bei einer Rücksicherung nach einer Installation - jede Menge Files, die es mit einer Tilde am Ende noch mal gibt.
Ich will die aber nicht einfach löschen, denn vielleicht sind ja welche dabei, der keinen normalen File ohne Tilde haben, d. h. also die einzigen und richtigen Files sind.
Der Plan ist nun alle relevanten Files mit Pfad zuerst mit rsync in ein separates Verzeichnis schreiben.

Da ich nicht herausgefunden habe, wie man die Fileselektion - alle *.~-Files - direkt mit rsync macht, wollte ich mit der --files-from-Option arbeiten, nachdem ich mir einen File mit allen relevanten Tilde-Filenamen generiert habe.
Code:
sudo find /home/user1 -type f -name '*~' > /home/user1/Tilde-Filenamen-mit-Pfad.txt
Leider habe ich mit der files-from-Option Probleme, denn statt die Tilde-Fileliste zu verarbeiten, werden nur alle rsync-Optionen angezeigt.
Code:
rsync -abuvn   --files-from=/home/user1/meinFilenamenFile.txt   /home/user1/TEMP  --progress --stats
Deshalb will ich mir nun einen Batchfile generieren mit einer rsync-Zeile pro Tilde-File, d. h.
Code:
find /home/user1 -type f -name '*~' | while read line; do echo "rsync -abuvn $line /home/backup/TILDE-FILES  --progress --stats"; done

Warum weiß ich nur, dass das niemand verstanden hat?
 
Zuletzt bearbeitet:
Okay, jetzt habe ich's:
Selektion und Sichern der Files mit Rsync geht natürlich doch.
Code:
rsync -abuv  --files-from=<(find /home/user1 -type f -name '*~') / /home/backup/TILDE-FILES
Da in dieser Liste aber auch Verzeichnisse sind, habe ich auf die Option --remove-sent-files verzichtet.
Ich lösche dann alle gefundenen Files im nächsten Schritt mit
Code:
find /home/user1 -name '*~' -print -delete

Quelle der Erkenntnis: https://unix.stackexchange.com/questions/87018/find-and-rsync
 
Zurück