Abhängig von Ihrer Version grep
kann dies immer warten, da Sie keinen Dateinamen (oder Verzeichnisnamen) als Argument angegeben haben. grep
Das Verhalten beim Verwenden des aktuellen Arbeitsverzeichnisses, wenn -r
angegeben, ist eine eher neue Funktion. Wenn Ihre Version also eine ältere Version ist, wartet Ihr Aufruf möglicherweise für immer auf die Eingabe stdin
. Fügen Sie einfach .
als letztes Argument hinzu grep
, um diesen Fall zu vermeiden.
Um Probleme mit Dateinamen zu vermeiden (was in diesem Fall kein Problem sein sollte), ist es am sichersten, anzurufen
grep -Zl -r 'Undelivered' . | xargs -0 rm --
Auf diese Weise werden grep
die übereinstimmenden Dateinamen mit einem Abstand von null Byte ( '\0'
) ausgegeben, wodurch Probleme mit Leerzeichen und ähnlichem in Dateinamen vermieden werden. --
weist rm
an, die folgenden Argumente nicht als Optionen zu behandeln, dh, wenn ein Dateiname mit einem beginnt -
, wird er nicht unterbrochen.
Um zu sehen, ob dieser Befehl überhaupt etwas bewirkt, können Sie die -v
Option hinzufügen rm
, um zu sehen, ob rm
tatsächlich etwas entfernt wird ( --
natürlich vor).