Hallo Liste, ich moechte vor dem woechentlichen backup meines home-Verzeichnis gern alle backup-files, die beim editieren angelegt werden, loeschen. Dazu wollte ich mein backup-Script um den folgenden Eintrag ergaenzen: rm < find -name /home/*~ Ich erhalte dann aber immer "Datei oder Verzeichnis nicht gefunden". Ich hab's auch schon mit find -name /home/*~ | rm versucht, was aber zur Ausgabe von "Falscher oder fehlender Parameter. Verwenden Sie rm --help für mehr Informationen" führt. find -name /home/*~ fuehrt zumindest zum gewuenschten Ergebnis, also sollte doch eine von beiden Varianten funktionieren. Wo liegt da der Fehler (abgesehen vom dem zwischen meinen Ohren ;-) Thx Manfred -- Ein kleiner Mann wird immer seine Fehler zu beschönigen suchen. - Konfuzius
Am Mon, 18 Jun 2001 schrieb Manfred Misch:
rm < find -name /home/*~
Hmm das kann schonmal von der Umleitung her nicht gehen, für den Zweck gibts find -exec oder xargs.
find -name /home/*~ fuehrt zumindest zum gewuenschten Ergebnis, also sollte doch eine von beiden Varianten funktionieren. Wo liegt da der Fehler (abgesehen vom dem zwischen meinen Ohren ;-)
Ich seh zwei Denkfehler: 1. rm liest die Dateinamen nicht von stdin sondern von der Kommandozeile, ergo mußt Du sie auch dort übergeben und nicht über I/O-Umleitung --> man xargs 2. find -name * ist gefährlich, weil der * von der Shell ausgewertet wird. Du solltest stattdessen find -name \* verwenden. Richtig wäre z.B. find /home -name \*~ -exec rm {} \; -- Erhard Schwenk http://www.fto.de http://www.akkordeonjugend.de
Hallo Erhard, Sascha und Heinz, danke, so funktionierts. cu Manfred -- Registered Linux-User #216556 http://counter.li.org./ ******************************************* In a World without Walls and Fences, who needs Windows and Gates? *******************************************
On Mon, Jun 18, 2001 at 04:47:18 +0200, Manfred Misch wrote:
Hallo Erhard, Sascha und Heinz,
danke, so funktionierts.
Was funktioniert wie? Entweder Du beschreibst die Lösung etwas genauer, damit jeder was davon hat (und nicht erst den Thread aus einem Archiv rausbuddeln muss) oder Du erledigst Dankesgrüße per PM - in der oben benutzten Form nutzen sie dem Rest der >= 2000 Leser hier nämlich gar nix! SCNR Jan
Jan Trippler
Was funktioniert wie? Entweder Du beschreibst die Lösung etwas genauer, damit jeder was davon hat (und nicht erst den Thread aus einem Archiv rausbuddeln muss) oder Du erledigst Dankesgrüße per PM - in der oben benutzten Form nutzen sie dem Rest der >= 2000 Leser hier nämlich gar nix!
Ts, ts, da will man mal freundlich sein, und schon kommt einer und meckert ;-))) Da ich meine Mails nach Threads sortiert habe, ist mir das so natuerlich noch nicht aufgefallen - sorry! Also: find /home/ -name "*~" -exec rm -f -- {} \; war die Loesung
SCNR
FWIW cu Manfred -- Ein kleiner Mann wird immer seine Fehler zu beschönigen suchen. - Konfuzius
On Mon, 18 Jun 2001 14:45:54 +0200, Manfred Misch wrote: [schnipp]
rm < find -name /home/*~ ... find -name /home/*~ | rm versucht, was aber zur Ausgabe von ... find -name /home/*~ fuehrt zumindest zum gewuenschten Ergebnis, also
Hallo Manfred, versuchs mal mit: find /home/ -name *~ -exec rm -f -- {} \; für mehr infos: man find :-) Bye Sascha
Sascha Streng wrote:
versuchs mal mit: find /home/ -name *~ -exec rm -f -- {} \;
Ein Wildcard-Ausdruck für find muß allerdings noch in Anführungszeichen gesetzt werden: find /home/ -name "*~" -exec rm -f -- {} \; wäre hier richtig. Des weiteren weiß ich hier nicht, was die beiden "--" bedeuten sollen - jedenfalls geht es auch ohne. - Matthias
* Matthias Kleine schrieb am 18.Jun.2001:
Sascha Streng wrote:
versuchs mal mit: find /home/ -name *~ -exec rm -f -- {} \;
Ein Wildcard-Ausdruck für find muß allerdings noch in Anführungszeichen gesetzt werden:
find /home/ -name "*~" -exec rm -f -- {} \;
wäre hier richtig. Des weiteren weiß ich hier nicht, was die beiden "--" bedeuten sollen - jedenfalls geht es auch ohne.
Das geht solange gut als daß Du keine Dateien hast, deren Name mit - beginnen. Bernd -- Bitte die Etikette beachten: http://home.t-online.de/~f.walle/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4
On Mon, Jun 18, 2001 at 04:24:13 +0200, Matthias Kleine wrote:
Sascha Streng wrote:
versuchs mal mit: find /home/ -name *~ -exec rm -f -- {} \;
Ein Wildcard-Ausdruck für find muß allerdings noch in Anführungszeichen gesetzt werden:
find /home/ -name "*~" -exec rm -f -- {} \;
wäre hier richtig. Des weiteren weiß ich hier nicht, was die beiden "--" bedeuten sollen - jedenfalls geht es auch ohne.
man rm -- zeigt (wie bei allen Programmen, die getopt() nutzen) das Ende der Optionen an. Nützlich, wenn Dateinamen behandelt werden, die mit einem - anfangen (was beim benutzten Suchmuster ohne weiteres sein kann). Jan
Jan Trippler wrote:
wäre hier richtig. Des weiteren weiß ich hier nicht, was die beiden "--" bedeuten sollen - jedenfalls geht es auch ohne.
man rm
... hätte mir recht wenig geholfen, aber mit man bash wäre ich weitergekommen. Thx, Matthias (Ich dachte ich wäre geplonkt?! Vielleicht solltest Du noch meine Firmenadresse in Deinen Filter aufnehmen?)
On Die, Jun 19, 2001 at 12:24:33 +0200, Matthias Kleine wrote:
Jan Trippler wrote:
wäre hier richtig. Des weiteren weiß ich hier nicht, was die beiden "--" bedeuten sollen - jedenfalls geht es auch ohne.
man rm
... hätte mir recht wenig geholfen, aber mit man bash wäre ich weitergekommen.
Auszug aus man rm: GNU rm, like every program that uses the getopt function to parse its arguments, lets you use the -- option to indicate that all following arguments are non-options. To <schnapp> Nimms mir nicht übel, aber hast offenbar schon wieder mal nicht getestet, was Du behauptest! Und was hat die bash damit zu tun? Das, was zu diesem Thema bei man bash steht, das bezieht sich auch nur auf die bash und hat mit dem rm überhaupt nichts zu tun!
(Ich dachte ich wäre geplonkt?! Vielleicht solltest Du noch meine Firmenadresse in Deinen Filter aufnehmen?)
Ja, ist jetzt ergänzt, nun landest Du auch mit der 2. Adresse da, wo ich Dich hinhaben wollte. Wie Deine Antwort zeigte, willst Du ja gar keine Hilfe, sonst hättest Du wenigstens mal geschaut. Jan
Jan Trippler wrote:
Auszug aus man rm: GNU rm, like every program that uses the getopt function to parse its arguments, lets you use the -- option to indicate that all following arguments are non-options. To <schnapp>
Nimms mir nicht übel, aber hast offenbar schon wieder mal nicht getestet, was Du behauptest!
I stand corrected. Ich hatte nach in man rm nach "--" gesucht, war aber über die richtige Stelle hinweggehuscht. Geb's ja zu.
(Ich dachte ich wäre geplonkt?! Vielleicht solltest Du noch meine Firmenadresse in Deinen Filter aufnehmen?)
Ja, ist jetzt ergänzt, nun landest Du auch mit der 2. Adresse da, wo ich Dich hinhaben wollte. Wie Deine Antwort zeigte, willst Du ja gar keine Hilfe, sonst hättest Du wenigstens mal geschaut.
Ich bin wirklich ein böser Kerl und habe den PLONK verdient, da ich Dich durch meine Fahrlässigkeit vermutlich tief verletzt habe. - Matthias
On 18-Jun-2001 Manfred Misch wrote:
ich moechte vor dem woechentlichen backup meines home-Verzeichnis gern alle backup-files, die beim editieren angelegt werden, loeschen. Dazu wollte ich mein backup-Script um den folgenden Eintrag ergaenzen: rm < find -name /home/*~
Z.B. mit
find . -name "*~" -exec rm {} \; wenn ungefragt geloescht werden soll
find . -name "*~" -ok rm {} \; wenn vorher gefragt werden soll
In diesem Fall duerfte das -ok zwar ueberfluessig sein, aber vielleicht
willst du ja auch mal andere Dateien loeschen, wo du vorher gerne noch
mal sehen moechtest, was du gleich loeschst.
Gruss,
Heinz.
--
E-Mail: Heinz W. Pahlke
participants (8)
-
B.Brodesser@t-online.de
-
Erhard Schwenk
-
ESG-M.Misch@t-online.de
-
Heinz W. Pahlke
-
Jan.Trippler@t-online.de
-
Manfred Misch
-
Matthias Kleine
-
Sascha Streng