Fråga om find och rm

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
martin77
Inlägg: 150
Blev medlem: 05 okt 2007, 16:51
OS: Xubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Malmö

Fråga om find och rm

Inlägg av martin77 »

Jag skrev ut kommandot:

Kod: Markera allt

find ~/Hämtningar/ -name '*.pdf' -exec cp '{}' pdf ';'
för att radera alla .pdf:er i katalogen, men kommandot raderade även alla pdf:er i de underliggande mapparna, det fungerade alltså rekursivt. Varför? Måste inte rm ha en -R eller -r flagga för att gå ner i katalogerna?

Nu var det ingen större katastrof men jag vill ändå veta.
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

Re: Fråga om find och rm

Inlägg av mcNisse »

find går alltid rekursivt igenom alla kataloger. Det går att begränsa hur djupt find letar med -maxdepth n. n=1 ger ingen rekursion.

Ditt kommando gjorde ingen delete utan kopierade filerna antingen till en fil som heter pdf eller lade alla filerna i en katalog med namnet pdf. Du har mao minst kvar den sista pdfen som hittades av find.

Om du ville ta bort felerna hade du varit tvungen att skriva

Kod: Markera allt

find ~/Hämtningar -name '*.pdf' -delete
martin77
Inlägg: 150
Blev medlem: 05 okt 2007, 16:51
OS: Xubuntu
Utgåva: 20.04 Focal Fossa LTS
Ort: Malmö

Re: Fråga om find och rm

Inlägg av martin77 »

Kom på att det var snarare find som arbetade rekursivt snarare än rm senare när jag låg och funderade på kommandot. Vad gäller kodraden så kopierade jag in fel från terminalen. Kommandot med cp var det första, men det efterföljande rm-kommandot (som jag ville skulle radera de kvarliggande orginalen, borde ha använt mig av mv istället så här i efterhand) raderade även pdf-katalogen :'( Men en följdfråga, skiljer sig detta kommando från ditt exempel
Det går att begränsa hur djupt find letar med -maxdepth n. n=1 ger ingen rekursion.
:

Kod: Markera allt

find /home/martin/Hämtningar -prune -o -name -exec rm '{}' pdf ';'
Skriv svar

Återgå till "Terminalforum"