farligt kommando - locate+rm

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
johan_pirate

farligt kommando - locate+rm

Inlägg 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. ;D
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: farligt kommando - locate+rm

Inlägg av Konservburk »

OBS! Det här är "farligt"...

Kod: Markera allt

locate vmware | xargs rm -rf
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: farligt kommando - locate+rm

Inlägg av mcNisse »

DrKonservburk skrev: OBS! Det här är "farligt"...

Kod: Markera allt

locate vmware | xargs rm -rf
,,, och det är dessutom troligt att du måste lägga till ett sudo innan rm vilket gör det hela ännu farligare.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
johan_pirate

SV: farligt kommando - locate+rm

Inlägg av johan_pirate »

Najsigt! de funka :)

Kod: Markera allt

locate vmware | sudo xargs rm -rf
Användarvisningsbild
DeepThought
Inlägg: 2769
Blev medlem: 19 dec 2006, 11:07
OS: Arch Linux
Ort: Göteborg

SV: farligt kommando - locate+rm

Inlägg 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:

Kod: Markera allt

locate vmware | sudo xargs rm -irf
Funkar om man inte har på tok för många filer, då kan det bli jobbigt ;)
WE WILL ALWAYS BE SO MUCH MORE HUMAN THAN WE WISH TO BE...
johan_pirate

SV: farligt kommando - locate+rm

Inlägg 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:

Kod: Markera allt

locate vmware | sudo xargs rm -irf
Funkar om man inte har på tok för många filer, då kan det bli jobbigt ;)
Tack för tipset ;D
Användarvisningsbild
zero gravity
Wikiadmin
Inlägg: 2504
Blev medlem: 15 apr 2006, 15:37
OS: Arch Linux
Ort: Bohuslän
Kontakt:

SV: farligt kommando - locate+rm

Inlägg av zero gravity »

johan_pirate skrev: Najsigt! de funka :)

Kod: Markera allt

locate vmware | sudo xargs rm -rf
Toker!! :P
Abusus non tollit usum
johan_pirate

SV: farligt kommando - locate+rm

Inlägg av johan_pirate »

zero gravity skrev:
johan_pirate skrev: Najsigt! de funka :)

Kod: Markera allt

locate vmware | sudo xargs rm -rf
Toker!! :P
muahaha xD
Okänd
Inlägg: 30172
Blev medlem: 03 mar 2008, 01:30
OS: Ubuntu

SV: farligt kommando - locate+rm

Inlägg av Okänd »

borde inte sudo rm -rf `locate wmvare` fungera lika bra? kanske bäst att testa med echo `locate wmvare` först ;)
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: farligt kommando - locate+rm

Inlägg 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)
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: farligt kommando - locate+rm

Inlägg 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.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: farligt kommando - locate+rm

Inlägg 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
Senast redigerad av 1 mcNisse, redigerad totalt 11 gånger.
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: farligt kommando - locate+rm

Inlägg 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.
Senast redigerad av 1 Mekaniserad Apelsin, redigerad totalt 11 gånger.
More Mekaniserad at http://blippe.se.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: farligt kommando - locate+rm

Inlägg 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å :)
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
johan_pirate

SV: farligt kommando - locate+rm

Inlägg av johan_pirate »

mcNisse skrev: Det visar ju hur använbara gnus verktyg är :)
släng dig i väggen microsoft! ;D
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: farligt kommando - locate+rm

Inlägg 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?
More Mekaniserad at http://blippe.se.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: farligt kommando - locate+rm

Inlägg 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.
Skriv svar

Återgå till "Terminalforum"