Verwenden von „find“ und „grep“ zum Leeren mehrerer Dateien

Verwenden von „find“ und „grep“ zum Leeren mehrerer Dateien
find . -name '.htaccess' -print | xargs grep -il 'sound' | xargs -p sh -c ">{}"

Versuchen Sie, einige .htaccess-Dateien auf einem Host zu finden, die kompromittiert wurden. Greppen Sie sie, um sicherzustellen, dass es sich um fehlerhafte .htaccess-Dateien handelt (nicht alle auf dem Server wurden zerstört) und löschen Sie sie.

Alles funktioniert, außer dem letzten Teil. Habe viele Variationen echo >usw. ausprobiert.

Mir fehlt hier etwas Grundlegendes, und ich kann es aus den ganzen Manpages nicht herausbekommen.

Danke.

Antwort1

find . -name '.htaccess' -print | xargs grep -il 'sound' | xargs -I {} sh -c ">{}"

Wie üblich erhalte ich die Antwort wenige Minuten nach dem Posten einer Frage.

Ich denke, manchmal hilft es, es einfach (wörtlich) auszusprechen ...

Antwort2

Versuchen Sie es mit dem : > filenameNoop.

Aber wäre es nicht sinnvoller, die fehlerhaften .htaccess-Dateien zu entfernen, anstatt sie auf Null zu setzen?

verwandte Informationen