Ich habe ein Verzeichnis src / das viele .cc-Dateien und seine Binärdatei enthält. Zum Beispiel:
%Vor%In Wirklichkeit gibt es viele .cc- und ausführbare Dateien.
Ich muss diese Binärdateien auf eine globale Weise entfernen, ohne sie aufzulisten alle Dateien. Gibt es eine schnelle und kompakte Möglichkeit, dies zu tun?
Ich habe es versucht:
%Vor%aber es entfernt alle Dateien einschließlich .cc und .hh Dateien.
Ich kenne diesen Befehl:
%Vor%aber dann müssen wir noch alle Dateien einzeln auflisten.
Hier geht's:
%Vor% Das grep -v
sagt "erlaube nur Dateinamen, die keinen Punkt enthalten", und die xargs rm
sagt "dann übergebe die Liste der Dateinamen an rm
".
Benutze find
. Was Sie wollen, ist das:
Es kann auch alles ohne eine Erweiterung entfernt werden:
%Vor% Die vorherige Option löscht das Makefile
nicht und ist daher zu bevorzugen. Ich denke kcwus Antwort zeigt eine schöne Möglichkeit, das obige mit der Option -delete
zu verbessern:
Bearbeiten : Ich benutze GNU findutils find
, Version 4.4.0, unter Ubuntu 8.10. Ich war mir nicht bewusst, dass der Schalter -executable
so ungewöhnlich ist.
Korrigierte Version des ersten Befehls von Stephan202.
BEARBEITEN: Versuchen Sie auch:
%Vor%verwendet das Oktaläquivalent
Anstatt -exec rm '{}' \;
zu übergeben, kann man -delete
arg.
Verwenden Sie find, um alle Dateien (nicht Ordner) zu entfernen, die keinen Dot-Character enthalten:
%Vor%