[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Befehl zum Löschen aller versteckten unterordner



Hallo Manfred!

Manfred Schmitt schrieb am Freitag, den 09. Mai 2008:

> Tobias Nissen schrieb:
> 
> > Peter Jordan wrote:
> > > Christian Brabandt, 05/08/2008 07:53 PM:
> > [...] 
> > >>> wie lautet der Befehl zum Löschen aller versteckten Unterordner in 
> > >>> einem Verzeichnis, ohne dass das Verzeichnis ./ mitgelöscht wird?
> > >> 
> > >> ungetestet: find . -mindepth 1 -depth -type d -name "\.*" 
> > >> 
> > [...] 
> > > findet leider auch das Verzeichnis selbst
> > > 
> > > ./.test
> > > .
> > 
> > Ne. Das wird durch -mindepth 1 ausgeschlossen. Wie und worauf hast Du
> > den Befehl losgelassen?
> > 
> Noe, erst mit -mindepth 2 wird das oberste Verzeichnis nicht gefunden.
> Aber Christian schrieb ja auch extra "ungetestet" von daher sollte der 
> OP mit der find-Zeile ja zum Ziel gekommen sein.

$ man mount |less -p "mindepth"
,----
| -mindepth levels
|      Do not apply any tests or actions at levels less than levels  (a
|      non-negative  integer).   ‘-mindepth  1’ means process all files
|      except the command line arguments.
`----

#v+
$ cd foo
$ find . -type d
.
./.a
./.a/.1
./.a/.2
./.b
./a
$ find . -mindepth 1 -depth -type d -name ".*"
./.a/.1
./.a/.2
./.a
./.b
$ find . -mindepth 1 -depth -type d -name ".*" -exec rm -rf '{}' +
$ find . -mindepth 1 -depth -type d -name ".*"
$
#v-

mindepth 1 stellt sicher, dass das aktuelle Verzeichnis (in diesem 
Fall .) rausgefiltert wird. Und das war ja gewünscht. Und -depth 
sollte man auch noch verwenden, damit man zuerst die untersten 
Verzeichnisse löscht und danach die darüber, sonst könnte es 
Fehlermeldungen geben.

Ach ja, und wenn die Verzeichnisse nicht leer sind, dann 
-exec rm -rf '{}' + ergänzen, weil -delete nur leere Verzeichnisse 
löscht.

Grüße
Christian
-- 
:wq


Reply to: