linux-l: Filelöschproblem

JSC schlegel at tfh-berlin.de
Do Okt 7 18:38:53 CEST 1999


On Thu, Oct 07, 1999 at 05:24:02PM +0200, HEINECKE Johannes CNET/DSM/LAN wrote:
> Hallo allerseits,
> 
> bei uns ist ein seltsames Problem aufgetreten. Durch einen
> Skriptfehler haben wir ein relativ-langen Pfadnamen
> ( ~username/cc/cc/cc/cc/cc...,
>  wobei cc viel länger ist und auch mit ? und * durchsetzt ist.
> jetzt wollten wir es löschen 
> aber rm -rf cc gibt einen Fehler `file name too long'
> wenn man mit cd bis ans Ende steigt und rm * macht (die Files dadrin
> sind kurz, deren Namen auch) gibt's den gleichen Fehler.
> bash, csh, tcsh alle wollen nicht löschen. Kennt jemand das
> Problem, und eine Lösung?
> 
ja, auf unserem fileserver gefunden. damals half folgendes script:
ACHTUNG: das script ist nicht ausgereift. ich habe es lediglich
etwas kommentiert, um nicht evtl. die funktionalitaet zu beeintraechtigen.
fehlerausgaben gehoeren zu funktionalitaet - ignorieren !

cat endless_path_rm # ;-)
----------------------------------------------------------------------
#!/bin/bash

cd $1
pwd # zur visuellen kontrolle
a=`ls -a|grep -v "\."|grep -v "\.\."|head -1`
   echo "$a"
   if [ -d "$a" ]; then
      echo mv "$a/*" "$a/.*" "$a/..*" .
      mv "$a"/* "$a"/.* "$a"/..* .
      echo rmdir "$a"
      rmdir "$a"
   else
      rm "$a"
   fi

exec $0 ./
----------------------------------------------------------------------

bei steuerzeichen und regexp im pfadnamen funktioniert das script nicht.
ich hoffe das prinzip ist klar.

cd problemdir
ersten eintrag vom dir extrahieren ($a)
if $a ist dir
  mv $a/* aktuelles_verzeichnis
  rmdir 
else
  rm $a
fi
recursiv in diesem verzeichnis weiter
# exec um die anzahl der prozesse nicht zu stark anschwellen zu lassen

wie erzeugt man sich diesen muell:

mkdir abc
cd abc
mkdir def
cd def
...

dann klappts auch mit perl ;-)

gruss
Jens

PS: ich hafte fuer gar nix ! ausfuehren der hier beschriebenen befehle
auch eigene gefahr.
-- 
 --------------------------------------------------------------
| Jens Schlegel                                                |
| TFH Berlin         email: schlegel at tfh-berlin.de             |
 --------------------------------------------------------------



Mehr Informationen über die Mailingliste linux-l