/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
shellscript
Fra : Sonni Skammelsen


Dato : 17-03-03 11:24

Hej

Jeg sidder og roder lidt på google, men kan ikke rigtig finde noget.
Det jeg søger er et lille shellscript som kan køres fra cron og sletter
subdirs i et bestemt dir, og reglen for at er slette er at diret indeholder
1 eller færre filer, dette er selvfølgelig ikke medregnet "." og "..".

Hvis der er nogen der ligger inde med et script der kan klare det, eller
ideer til hvordan den klares er jeg meget interesseret.

/Sonni



 
 
Peter Jensen (17-03-2003)
Kommentar
Fra : Peter Jensen


Dato : 17-03-03 13:28

Sonni Skammelsen wrote:

> Jeg sidder og roder lidt på google, men kan ikke rigtig finde noget.
> Det jeg søger er et lille shellscript som kan køres fra cron og sletter
> subdirs i et bestemt dir, og reglen for at er slette er at diret indeholder
> 1 eller færre filer, dette er selvfølgelig ikke medregnet "." og "..".

Nu skriver du så filer, men er . og .. ikke underbiblioteker?

> Hvis der er nogen der ligger inde med et script der kan klare det, eller
> ideer til hvordan den klares er jeg meget interesseret.

Noget i denne stil, måske:

---BEGIN---
#!/bin/bash

for i in $(\
# Find all subdirectories
/usr/bin/find -type d |\
# Exclude the . directory
/bin/egrep -v "^.$" \
)
do \
if [ $(( $(\
# Find all files in subdirectory
/usr/bin/find $i -type f |\
# Count the number of files
/bin/wc -l \
# Are there less than 2 files?
) < 2 )) == 1 ]
then \
# If there are, do this:
/bin/echo /bin/rm -rf $i
fi
done
----END----

Det er lidt hurtigt stykket sammen, så der er måske fejl. Permissions
bliver heller ikke testet. For en sikkerheds skyld sletter scriptet ikke
noget nu. Du kan lige teste det og så fjerne /bin/echo, hvis alt virker
som det skal.

Scriptet er nu public domain.

--
PeKaJe

Kliban's First Law of Dining:
   Never eat anything bigger than your head.

Sonni Skammelsen (17-03-2003)
Kommentar
Fra : Sonni Skammelsen


Dato : 17-03-03 15:20


"Peter Jensen" <jdogh001@sneakemail.com> wrote in message
news:3e75bf3d$0$260$edfadb0f@dread15.news.tele.dk...
> Sonni Skammelsen wrote:
>
> > Jeg sidder og roder lidt på google, men kan ikke rigtig finde noget.
> > Det jeg søger er et lille shellscript som kan køres fra cron og sletter
> > subdirs i et bestemt dir, og reglen for at er slette er at diret
indeholder
> > 1 eller færre filer, dette er selvfølgelig ikke medregnet "." og "..".
>
> Nu skriver du så filer, men er . og .. ikke underbiblioteker?
Jow selvfølgelig :)
>
> > Hvis der er nogen der ligger inde med et script der kan klare det, eller
> > ideer til hvordan den klares er jeg meget interesseret.
>
> Noget i denne stil, måske:
>
> ---BEGIN---
> #!/bin/bash
>
> for i in $(\
> # Find all subdirectories
> /usr/bin/find -type d |\
> # Exclude the . directory
> /bin/egrep -v "^.$" \
> )
> do \
> if [ $(( $(\
> # Find all files in subdirectory
> /usr/bin/find $i -type f |\
> # Count the number of files
> /bin/wc -l \
> # Are there less than 2 files?
> ) < 2 )) == 1 ]
> then \
> # If there are, do this:
> /bin/echo /bin/rm -rf $i
> fi
> done
> ----END----
>
> Det er lidt hurtigt stykket sammen, så der er måske fejl. Permissions
> bliver heller ikke testet. For en sikkerheds skyld sletter scriptet ikke
> noget nu. Du kan lige teste det og så fjerne /bin/echo, hvis alt virker
> som det skal.
>
Vil straks teste det.

/Sonni



Sonni Skammelsen (17-03-2003)
Kommentar
Fra : Sonni Skammelsen


Dato : 17-03-03 16:19


"Peter Jensen" <jdogh001@sneakemail.com> wrote in message
news:3e75bf3d$0$260$edfadb0f@dread15.news.tele.dk...
> ---BEGIN---
> #!/bin/bash
>
> for i in $(\
> # Find all subdirectories
> /usr/bin/find -type d |\
> # Exclude the . directory
> /bin/egrep -v "^.$" \
> )
> do \
> if [ $(( $(\
> # Find all files in subdirectory
> /usr/bin/find $i -type f |\
> # Count the number of files
> /bin/wc -l \
> # Are there less than 2 files?
> ) < 2 )) == 1 ]
> then \
> # If there are, do this:
> /bin/echo /bin/rm -rf $i
> fi
> done
> ----END----
>
Det er nu testet og virker, med en lille ændring, ved dog ikke om det er RH
specifikt.
/bin/wc skulle lige ændres til /usr/bin/wc

Tak for hjælpen :)

/Sonni



Peter Jensen (17-03-2003)
Kommentar
Fra : Peter Jensen


Dato : 17-03-03 18:07

Sonni Skammelsen wrote:

[Snip - Script]

> Det er nu testet og virker, med en lille ændring, ved dog ikke om det er RH
> specifikt.
> /bin/wc skulle lige ændres til /usr/bin/wc

Nådada ... Det er åbenbart en forskel på Gentoo og Red Hat. Sært ...

> Tak for hjælpen :)

Det var så lidt. Du skal dog nok passe lidt på, hvis underbibliotekerne
selv har underbiblioteker. Alt efter hvad der var din hensigt, kan
uforudsete ting ske. Det er ikke just et robust script ...

--
PeKaJe

You attempt things that you do not even plan because of your extreme stupidity.

Sonni Skammelsen (17-03-2003)
Kommentar
Fra : Sonni Skammelsen


Dato : 17-03-03 19:09


"Peter Jensen" <jdogh001@sneakemail.com> wrote in message
news:3e7600ca$0$221$edfadb0f@dread15.news.tele.dk...
> Nådada ... Det er åbenbart en forskel på Gentoo og Red Hat. Sært ...
Hmm, en gentoo bruger.....gad vide om han kan hjælpe med mere :)
Jeg har prøvet at installere gentoo i et par forskellige version, men det er
aldrig lykkedes på min egen maskine.
Den dør under bootstrap processen, prøver jeg derimod på konen maskine går
det fint.
Min er en dual p3 og hendes er en amd duron.

> Det var så lidt. Du skal dog nok passe lidt på, hvis underbibliotekerne
> selv har underbiblioteker. Alt efter hvad der var din hensigt, kan
> uforudsete ting ske. Det er ikke just et robust script ...

Nu er jeg sikker på der ikke kommer underbiblioteker, og skulle det ske så
er det en fejl og de skal væk :)

/Sonni



Peter Jensen (17-03-2003)
Kommentar
Fra : Peter Jensen


Dato : 17-03-03 21:00

Sonni Skammelsen wrote:

>> Nådada ... Det er åbenbart en forskel på Gentoo og Red Hat. Sært ...
>
> Hmm, en gentoo bruger.....gad vide om han kan hjælpe med mere :)

Man ved jo aldrig ...

> Jeg har prøvet at installere gentoo i et par forskellige version, men det er
> aldrig lykkedes på min egen maskine.

OK, det lyder sært ...

> Den dør under bootstrap processen, prøver jeg derimod på konen maskine går
> det fint.

Hmm ... Med bootstrap, så mener du vel stage 1, ikke? I så fald kunne du
jo prøve med en højere stage til at starte med.

Jeg har hørt rygter om at glibc (eller et andet vigtigt library), som
kompileres i stage 1, giver nogle grimme segfaults, hvis den er blevet
kompileret med en for aggresiv optimering. Jeg mener at det var -O3 der
gav problemer, hvilket ikke er så godt når det er standardinstillingen.
Det gælder vist også kun for visse arkitekturer, så jeg skal ikke kunne
udtale mig for meget.

Prøv dog at ændre -O3 til -O2 i /etc/make.conf, og se hvad der sker.

Der er en høj koncentration af Gentoo brugere (såvel som trolls) i
comp.os.linux.advocacy. I denne gruppe kan man ofte møde "Jon Portnoy",
som er udvikler hos Gentoo. Han har indtil videre kunnet svare mig på
alle mine Gentoo-relaterede spørgsmål. Signal/Støj forholdet er dog lidt
stort i gruppen ...

> Min er en dual p3 og hendes er en amd duron.

Tja ... Jeg har aldrig haft råd til en dual, så jeg har heller ikke haft
problemer med den

>> Det var så lidt. Du skal dog nok passe lidt på, hvis underbibliotekerne
>> selv har underbiblioteker. Alt efter hvad der var din hensigt, kan
>> uforudsete ting ske. Det er ikke just et robust script ...
>
> Nu er jeg sikker på der ikke kommer underbiblioteker, og skulle det ske så
> er det en fejl og de skal væk :)

Jep, men deri ligger problemet ... Hvis underbibliotekerne også
indeholder et par filer, så bliver ingen af dem slettet! Problemet kan
vist løses ved at tilføje '-maxdepth 1' til den anden find kommando. Det
er dog ikke testet fuldt ud ...

--
PeKaJe

Half Moon tonight. (At least it's better than no Moon at all.)

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste