Ich brauche alle Dateien mit einer bestimmten Zeichenfolge und tar sie zu finden. Ich habe die folgende Syntax verwendet, aber es funktioniert nicht.wie tar Befehl mit find exec und grep in linux
find . -iname '*.log' -exec grep -l 'abcdef' {} tar mytar.tar.gz -T - \;
Und das will ich nicht über die Pipeline-Syntax wie unten verwenden (aus bestimmten Gründen)
find . -name '*.log' | xargs grep -l 'abcdef' | tar Mytar.tar.gz -T -
Ich muß mit exec finden verwenden und jede Datei grep und die resultierende Liste von Dateien tar.
Dank
Sie gehen zu müssen, ein Rohr verwenden, * irgendwo *, wahrscheinlich etwas wie 'finde ... -exec sh -c 'grep ... | Teer ... ". Was ist deine Abneigung gegen Pfeifen? – chepner
Nun - Sie könnten sicherlich zwei separate '-exec'-Klauseln verwenden, eine, um die Datei zu vergrößern, eine zweite, um 'tar' mit Namen aufzurufen, für die' grep' einen Exit-Status von 0 zurückgegeben hat. Aber ... ja, Warum die Abneigung gegen Pfeifen? –
Ich führe das in einem Container und es ist irgendwie nicht Pfeifen zu ehren. – user2050188