rekursivt med prename

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

rekursivt med prename

Inlägg av fashoin »

Jag funderar på hur jag ändrar alla mellanslag till understreck rekursivt med prename?

Antar att de blir något sånt här

Kod: Markera allt

prename 's/ /_/g'
men jag är osäker på hur jag löser detta så att den går ner och kör på alla undermappar och filer!
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rekursivt med prename

Inlägg av Konservburk »

fashoin skrev:men jag är osäker på hur jag löser detta så att den går ner och kör på alla undermappar och filer!
Då är det find du vill använda.
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

Re: rekursivt med prename

Inlägg av fashoin »

Konservburk skrev:
fashoin skrev:men jag är osäker på hur jag löser detta så att den går ner och kör på alla undermappar och filer!
Då är det find du vill använda.
ok, hur blir kommandot då?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rekursivt med prename

Inlägg av Konservburk »

Om du har ett färdigt kommando som du vill köra på alla underkataloger och filer så grundidén att du sätter find -exec framför kommandot och {} + efter kommandot.

Sen kanske du vill begränsa find lite för att snabba upp det hela genom att t.ex. bara skicka vidare filer vars filnamn faktiskt innehåller mellanrum, men sådant är egentligen bara detaljer.
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

Re: rekursivt med prename

Inlägg av fashoin »

Konservburk skrev:Om du har ett färdigt kommando som du vill köra på alla underkataloger och filer så grundidén att du sätter find -exec framför kommandot och {} + efter kommandot.

Sen kanske du vill begränsa find lite för att snabba upp det hela genom att t.ex. bara skicka vidare filer vars filnamn faktiskt innehåller mellanrum, men sådant är egentligen bara detaljer.

cool! kanske skall läsa på "find" lite då!
ingen som vet nån bra howto!?
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

Re: rekursivt med prename

Inlägg av fashoin »

då blir ju mitt kommando följande och fungerar jätte bra men jag undrar vart i kommandot jag skriver sökvägen?

Kod: Markera allt

find -exec prename 's/ /_/g' {} +
Skulle villja lägga in detta i crontab så det körs på utvalta mappar varje timma!
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rekursivt med prename

Inlägg av Konservburk »

fashoin skrev:då blir ju mitt kommando följande och fungerar jätte bra men jag undrar vart i kommandot jag skriver sökvägen?

Kod: Markera allt

find -exec prename 's/ /_/g' {} +
Sökvägen petar du in direkt efter find, dvs innan -exec.
fashoin skrev:Skulle villja lägga in detta i crontab så det körs på utvalta mappar varje timma!
Är detta menat som en fråga?
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

Re: rekursivt med prename

Inlägg av fashoin »

Konservburk skrev:
fashoin skrev:då blir ju mitt kommando följande och fungerar jätte bra men jag undrar vart i kommandot jag skriver sökvägen?

Kod: Markera allt

find -exec prename 's/ /_/g' {} +
Sökvägen petar du in direkt efter find, dvs innan -exec.
fashoin skrev:Skulle villja lägga in detta i crontab så det körs på utvalta mappar varje timma!
Är detta menat som en fråga?
Yes it is! men utan frågetecken såg ja =)
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: rekursivt med prename

Inlägg av Konservburk »

Det ska inte vara svårare än att köra crontab -e och lägga till en rad som börjar med en tal mellan 0 och 59 följt av 4 stycken * följt av kommandot du vill köra.

8 * * * * * find /en/utvald/mapp /en/annan/utvald/mapp /en/tredje/utvald/mapp -exec osv
fashoin
Inlägg: 505
Blev medlem: 02 mar 2009, 18:42
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu

Re: rekursivt med prename

Inlägg av fashoin »

Konservburk skrev:Det ska inte vara svårare än att köra crontab -e och lägga till en rad som börjar med en tal mellan 0 och 59 följt av 4 stycken * följt av kommandot du vill köra.

8 * * * * * find /en/utvald/mapp /en/annan/utvald/mapp /en/tredje/utvald/mapp -exec osv
ok så om man har typ 300 mappar med 300 undermappar så blir kommandot ganska långt! tänkte kanske prename hade något i stil med -R eller nått!
Skriv svar

Återgå till "Terminalforum"