Sida 1 av 1
farligt kommando - locate+rm
Postat: 11 apr 2007, 15:39
av johan_pirate
Tjena!
Jag undrar om det finns något kommando som raderar alla sökresultat den hittar typ?
locate vmware | rm vmwa*
hoppas ni fattar.

SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 15:53
av Konservburk
OBS! Det här är "farligt"...
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 16:03
av mcNisse
DrKonservburk skrev:
OBS! Det här är "farligt"...
,,, och det är dessutom troligt att du måste lägga till ett sudo innan rm vilket gör det hela ännu farligare.
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 16:46
av johan_pirate
Najsigt! de funka
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 17:01
av DeepThought
Kanske kan man köra rm med flaggan -i (interactive, d.v.s. du får "svara ja" på alla filer först - trycka y och Enter) om man är lite osäker? Borde väl bli:
Funkar om man inte har på tok för många filer, då kan det bli jobbigt

SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 17:08
av johan_pirate
DeepThought skrev:
Kanske kan man köra rm med flaggan -i (interactive, d.v.s. du får "svara ja" på alla filer först - trycka y och Enter) om man är lite osäker? Borde väl bli:
Funkar om man inte har på tok för många filer, då kan det bli jobbigt
Tack för tipset

SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 17:20
av zero gravity
johan_pirate skrev:
Najsigt! de funka
Toker!!

SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 17:24
av johan_pirate
zero gravity skrev:
johan_pirate skrev:
Najsigt! de funka
Toker!!
muahaha xD
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 20:59
av Okänd
borde inte sudo rm -rf `locate wmvare` fungera lika bra? kanske bäst att testa med echo `locate wmvare` först

SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 21:15
av mcNisse
Den här varianten fungar oxå. Men den tar bara bort den första som hittas i $PATH.
sudo rm -rf $(which wmvare)
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 21:16
av Lars
gasol skrev:
borde inte sudo rm -rf `locate wmvare` fungera lika bra? kanske bäst att testa med echo `locate wmvare` först
Problemet är att längden på kommandoraden är begränsad, `locate vmware` kan bli väldigt lång och då ryms inte alla filnamn. När man kör xargs så delas det upp i flera anrop av rm om det behövs.
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 21:29
av mcNisse
Jag har varit med om att det har blivit så många argument till xargs så att det bara hälften av kommandorna blev gjorda

(på en HPUX kärra) Dessutom finns problemen med mellanslag i namn.
Meningslösa exempel för att komma runt problemet...
iterativt:
find . | xargs -i echo "{}"
eller för att ta 10 åt gången:
find . | xargs -L 10 echo
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 22:47
av Mekaniserad Apelsin
mcNisse skrev:
find . | xargs -i echo "{}"
du har börjat närma dig något intressant... find (plats att börja söka på) [argument] är ytterst användbart för sånt här. Till exempel tar
find . -type d -empty -delete
och slänger alla tomma kataloger (rekursivt) från positionen där man är.
find . -iname filattslänga -delete
slänger alla filer som heter filattslänga (rekursivt) och
find . -iname filatt* -delete
slänger filerna filattslänga och filattspara (dvs alla filer som börjar på filatt), givetvis oxå rekursivt.
iname står för att find inte ska bry sig om filen har rätt stora bokstäver (FilaTTsläNga och FILATTSLÄNGA slängs oxå.)
find . iname dumfil -delete
slänger inte DUMfil och DumFil eftersom -name används istället.
För mer skriv man find i en terminal!
Det intressanta är givetvis att -iname fil\ att\ slänga slänger filen "Fil att slänga", dvs den accepterar alla typer av tecken i filnamnet osv.
SV: farligt kommando - locate+rm
Postat: 11 apr 2007, 23:06
av mcNisse
Mycket intressant. Är det gnus utökningar av find som du beskriver? Jag hittade inget i man sidan på en HPUX burk. Det visar ju hur använbara gnus verktyg är
find . -iname filatt* -delete
slänger filerna filattslänga och filattspara (dvs alla filer som börjar på filatt), givetvis oxå rekursivt.
Ger detta fel på min burk. "find: paths must precede expression" Men det är bara att fnutta wilcard uttrycket filatt*. Jag trodde att ett helt annat fel skulle kunna uppstå

SV: farligt kommando - locate+rm
Postat: 12 apr 2007, 09:38
av johan_pirate
mcNisse skrev:
Det visar ju hur använbara gnus verktyg är
släng dig i väggen microsoft!

SV: farligt kommando - locate+rm
Postat: 12 apr 2007, 10:09
av Mekaniserad Apelsin
mcNisse skrev:
Mycket intressant. Är det gnus utökningar av find som du beskriver? Jag hittade inget i man sidan på en HPUX burk. Det visar ju hur använbara gnus verktyg är
Ger detta fel på min burk. "find: paths must precede expression" Men det är bara att fnutta wilcard uttrycket filatt*. Jag trodde att ett helt annat fel skulle kunna uppstå
Jag har försökt att beskriva hur find har fungerat sen åtminstone dapper... Och enda sättet jag lyckas återskapa det fel du beskriver är om jag sätter path (det är punkten dvs var man ska börja söka någonstans (.=nuvarande position)), efter expression (-iname filatt*), precis som felmeddelandet säger... Är du säker på att du skrev kommandot exakt som beskrevs?
SV: farligt kommando - locate+rm
Postat: 12 apr 2007, 11:55
av Konservburk
MekaniseradApelsin skrev:Är du säker på att du skrev kommandot exakt som beskrevs?
Ja, han skrev kommandot exakt som du beskrev. Skillnaden är
att han hade filer som matchade
filatt* i katalogen han stod i,
men det hade inte du. Prova detta så får du se vad jag menar...
Kod: Markera allt
touch filattslänga filattspara
find . -iname filatt* -delete
Glöm aldrig att escapa alla
* när du inte vill att kommandoskalet
ska föröka expandera dem.