cp-kommandot...

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

cp-kommandot...

Inlägg av Johnny Rosenberg »

Försöker använda cp i ett sh-skript, men blir inte riktigt klok på det. Använder formen cp -ruv /sökväg1/mapp/* /sökväg2/mapp >> /sökväg1/mapp/.mapp/fil

Problemet är att jag har skapat en dold mapp och det verkar som att kommandot skiter fullständigt i den. Men å andra sidan har jag i min /sökväg2/mapp dolda mappar som skapats av samma rad tidigare. Eller inte... känner mig osäker nu...

man cp säger inget om huruvida dolda filer kopieras eller inte eller om det finns någon flagga för detta. Har jag missat något?

Alltså:
Ignoreras dolda filer med cp-kommandot?
Om inte, hur får man kommandot att kopiera även dolda filer?
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: cp-kommandot...

Inlägg av Konservburk »

Johnny Rosenberg skrev: man cp säger inget om huruvida dolda filer kopieras eller inte eller om det finns någon flagga för detta. Har jag missat något?
Innan cp överhuvudtaget körs så expanderar skalet dina sökvägar. DVS
"/sökväg1/mapp/*" ersätts med "/sökväg1/mapp/fil1 /sökväg1/mapp/fil2
osv". Men * matchar inte vad som helst:
The  character  .  at the start of a file name or immediately following a  /,
and the character  /,  must be matched explicitly.
I det här fallet är det nog bäst att strunta i * helt och hållet:

Kod: Markera allt

cp -a /sökväg1/mapp/ /sökväg2/
Då slipper du dessutom problem om /sökväg1/mapp/ råkar var tom.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

SV: cp-kommandot...

Inlägg av Johnny Rosenberg »

Ser att du i ditt exempel hade flaggan -a, som verkar motsvara -dpR. -r hade jag ju redan, men om jag vill ha -u så täcks väl den inte in av -a, eller tänker jag fel?

Vad jag försöker göra är en enkel backup på en USB-hårddisk. När alla utom jag gör backuper, verkar det ibland som, så vill man tydligen komprimera filerna och spara dem i ett arkiv. Det kan vara zip eller vad som helst egentligen, men det vill jag absolut inte göra. Jag vill ha filerna tillgängliga exakt som de är på originalhårddisken. En av de viktigaste sakerna när just JAG gör backup är att det går fort så in i... ja, fort helt enkelt, så en massa onödigt som komprimerande, arkiverande och annat tidsödande, faller inom ramen för sådant jag absolut vill undvika. Går det inte fort att göra backup så blir det heller inte av. Således går DVD bort direkt, exempelvis. Det ska bara rassla till och så ska det vara klart, typ.

Till saken igen:
När jag kom fram till -ruv så hade jag gått igenom alla flaggor som angivits på man cp och kommit fram till att det var dessa jag ville ha. Har du några bra argument för att välja -a istället/också? Jag kan ju ha tänkt helt fel...  :o nja, inte HELT fel, men lite kanske...  ;D
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

SV: cp-kommandot...

Inlägg av Johnny Rosenberg »

DrKonservburk skrev:
Då slipper du dessutom problem om /sökväg1/mapp/ råkar var tom.
Kan inte inse vilket problem det skulle vara, men upplys mig gärna.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: cp-kommandot...

Inlägg av Konservburk »

Johnny Rosenberg skrev: Ser att du i ditt exempel hade flaggan -a, som verkar motsvara -dpR. -r hade jag ju redan, men om jag vill ha -u så täcks väl den inte in av -a, eller tänker jag fel?
Johnny Rosenberg skrev: När jag kom fram till -ruv så hade jag gått igenom alla flaggor som angivits på man cp och kommit fram till att det var dessa jag ville ha. Har du några bra argument för att välja -a istället/också? Jag kan ju ha tänkt helt fel...  :o nja, inte HELT fel, men lite kanske...  ;D
"-a" motsvarar "--recursive --no-dereference --preserve=all", dvs
  --recursive:      kopiera kataloger
  --no-dereference:  följ aldrig symlänkar
  --preserve=all:    bevara rättigheter, ägare, tidsstämplar, hårdlänkar

Vill du att kopian ska vara lik orginalet så är -a ett mycket bra val.
Utan --preserve=all kommer t.ex. de nya filerna att ägas av den
användare som gjorde själva kopian istället för att ägas av den
användare som äger orginalet.
Johnny Rosenberg skrev:
DrKonservburk skrev:
Då slipper du dessutom problem om /sökväg1/mapp/ råkar var tom.
Kan inte inse vilket problem det skulle vara, men upplys mig gärna.
Om /sökväg1/mapp/ är tom kommer /sökväg1/mapp/* inte att
expanderas, vilket innebär att du kommer att få ett felmeddelande
om att cp inte kan hitta filen "/sökväg1/mapp/*".
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

SV: cp-kommandot...

Inlägg av Johnny Rosenberg »

DrKonservburk skrev:
Johnny Rosenberg skrev: Ser att du i ditt exempel hade flaggan -a, som verkar motsvara -dpR. -r hade jag ju redan, men om jag vill ha -u så täcks väl den inte in av -a, eller tänker jag fel?
Johnny Rosenberg skrev: När jag kom fram till -ruv så hade jag gått igenom alla flaggor som angivits på man cp och kommit fram till att det var dessa jag ville ha. Har du några bra argument för att välja -a istället/också? Jag kan ju ha tänkt helt fel...  :o nja, inte HELT fel, men lite kanske...  ;D
"-a" motsvarar "--recursive --no-dereference --preserve=all", dvs
   --recursive:       kopiera kataloger
   --no-dereference:  följ aldrig symlänkar
   --preserve=all:    bevara rättigheter, ägare, tidsstämplar, hårdlänkar

Vill du att kopian ska vara lik orginalet så är -a ett mycket bra val.
Utan --preserve=all kommer t.ex. de nya filerna att ägas av den
användare som gjorde själva kopian istället för att ägas av den
användare som äger orginalet.
Johnny Rosenberg skrev:
DrKonservburk skrev:
Då slipper du dessutom problem om /sökväg1/mapp/ råkar var tom.
Kan inte inse vilket problem det skulle vara, men upplys mig gärna.
Om /sökväg1/mapp/ är tom kommer /sökväg1/mapp/* inte att
expanderas, vilket innebär att du kommer att få ett felmeddelande
om att cp inte kan hitta filen "/sökväg1/mapp/*".
Okej, så jag kan lägga till a till mina övriga växlar alltså? Och dessutom ta bort det r jag hade redan innan, så att jag får -auv istället för -ruv, eller hur? Av hastighetsskäl vill jag ju bara kopiera de filer som ändrats sedan förra gången, och det är väl -u som gör det, eller hur?
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: cp-kommandot...

Inlägg av Konservburk »

Johnny Rosenberg skrev: Okej, så jag kan lägga till a till mina övriga växlar alltså? Och dessutom ta bort det r jag hade redan innan, så att jag får -auv istället för -ruv, eller hur? Av hastighetsskäl vill jag ju bara kopiera de filer som ändrats sedan förra gången, och det är väl -u som gör det, eller hur?
Johnny Rosenberg skrev: Vad jag försöker göra är en enkel backup på en USB-hårddisk. När alla utom jag gör backuper, verkar det ibland som, så vill man tydligen komprimera filerna och spara dem i ett arkiv. Det kan vara zip eller vad som helst egentligen, men det vill jag absolut inte göra. Jag vill ha filerna tillgängliga exakt som de är på originalhårddisken. En av de viktigaste sakerna när just JAG gör backup är att det går fort så in i... ja, fort helt enkelt, så en massa onödigt som komprimerande, arkiverande och annat tidsödande, faller inom ramen för sådant jag absolut vill undvika. Går det inte fort att göra backup så blir det heller inte av. Således går DVD bort direkt, exempelvis. Det ska bara rassla till och så ska det vara klart, typ.
Du VILL använda rsync:

Kod: Markera allt

rsync -av /sökväg1/mapp /sökväg2
Kör sedan samma sak varje gång du tänker uppdatera din backup.
Skriv svar

Återgå till "Terminalforum"