Wie lösche ich Sicherungsdateien (mit Tilde als letztem Zeichen) rekursiv aus einem von Quanta Plus erstellten Ordner?

7116
JustLearn

Ich verwende Ubuntu 9.04 und verwende Quanta Plus zum Programmieren. Wenn ich jedoch versuche, alle Ordner auf einen Server hochzuladen, werden auch alle Sicherungsdateien (deren letzte Zeichen eine Tilde ist) hochgeladen.

Ich möchte wissen, gibt es einen Befehl, mit dem ich alle Sicherungsdateien rekursiv aus einem Ordner löschen kann. Bitte geben Sie einen Befehl für mich an, da nicht alle Dateien manuell gelöscht werden können.

2
Ich habe ein Skript, das genau dies tut, ich versuche es zu finden, aber ich glaube, es ist auf meinem Arbeitsdesktop. Sie nennen es mit einem Pfad und einer Einschränkung, nach der Sie suchen müssen. In Ihrem Fall könnten Sie "./script.sh / path / to / folder / * ~ tun und es werden alle Sicherungsdateien entfernt, die das ~ am Ende enthalten. Möchten Sie es veröffentlichen? Chris vor 13 Jahren 0

3 Antworten auf die Frage

6
Dennis Williamson
find /path/to/dir -name "*~" -delete 

oder

find /path/to/dir -name "*~" -ok rm {} \; 

vor dem Entfernen auffordern

Wie würden Sie ein Verzeichnis mit dieser Methode ausschließen? Die Manpage für find sagt: "Da -delete -depth impliziert, können Sie -prune und -delete nicht sinnvoll zusammen verwenden." Shawn vor 10 Jahren 0
@Shawn: Etwas wie das (nicht getestet): `find / path / to / dir -wholename './subdir/to/skip' -prune -o -name '* ~' -ok rm {} \;` "-exec" anstelle von "-ok", wenn Sie keine Löschungen bestätigen müssen (oder Sie könnten "-i" mit "rm" als andere Bestätigungsmethode verwenden). Dennis Williamson vor 10 Jahren 0
Danke Dennis. Wenn andere Probleme haben, beachten Sie, dass das Entfernen des führenden Punkts oder das Hinzufügen eines nachstehenden Schrägstrichs zu './subdir/to/skip' das Skript zerstört Shawn vor 10 Jahren 0
1
elundmark

Für eine grafischere Lösung (und zum Sichern aller * ~ -Dateien vor dem Löschen) können Sie gnome-search-tool verwenden

Lassen Sie "Name enthält:" leer, wählen Sie den Ordner aus und aktivieren Sie die Option "Weitere": "Ausgeblendete Dateien und Sicherungsdateien anzeigen" + "Andere Dateisysteme ausschließen" (um zu verhindern, dass SSH-Server, bereitgestellte FTP-Ordner und verbundene Laufwerke durchsucht werden) und Wählen Sie dann für das Zauberbit die Option "Mehr" "Name passt regulären Ausdruck:" und geben Sie ein

^.*~$ 

Nachdem Sie die Suche beendet haben, wählen Sie einfach die zu entfernenden aus, klicken Sie mit der rechten Maustaste und wählen Sie "In den Papierkorb verschieben". Ich mache es auf diese Weise, damit ich all diese Dateien sichern kann, bevor sie endgültig gelöscht werden. Ich habe hier einen Screenshot hochgeladen: "dl. Elundmark. Se / d / Selection-20120114-01. Jpg"

0
cYrus

Benutzen:

$ cd the_folder $ rm -i `find -name '*~'` 

Die -iOption fordert vor jeder Entfernung auf, Sie können sie entfernen, wenn Sie sich sicher sind.

Das wird für Dateinamen fehlschlagen, die Leerzeichen enthalten. Dennis Williamson vor 13 Jahren 1
@Dennis: Du hast recht! cYrus vor 13 Jahren 0