v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Få adgang til alt på hele v5.dk
- bliv Premium-medlem for kun 39,95 kr.

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Lave en ZIP-fil for hver mappe - Script

  • v5.dk
  • Forum
  • Linux
  • Lave en ZIP-fil for hver mappe - Script
  • Sidevisninger: 2856 har set dette indlæg
Besvar #0Spørgsmål oprettet af @danielbahl | 135 points
30 points ude 1 indlæg 7 år siden Spørgsmål besvaret
avatar
 

Kære v5.dk og alle brugere herinde

Jeg er ret ny i Linux og sidder med en lille udfordring som jeg ikke selv har kunne finde en løsning på.

Jeg arbejder på et lille script som hver nat skal lave en ZIP-fil af alle mine hjemmesider på min lille Ubuntu Linux Server og kopiere dem over på en ekstern harddisk. Jeg har fundet ud af at kopiere og jeg har fundet ud af at lave 1 stor ZIP, men hvordan kan jeg lave en ZIP for hver mappe

Lad mig forklare. I min /var/www/ har jeg følgende mapper:

website1.dk, website2.dk, billeder, dokumenter, wordpress, (og flere..)

Nu kunne jeg så i mit script lave en manuel linje for hver mappe

zip -r website1.zip website1.dk
zip -r billeder.zip billeder
osv. 

Men hvis nu jeg tilføjer en ny mappe til min /var/www/ og glemmer at lægge en zip-kommando ind i mit script, så bliver der ikke taget backup...

Kan man lave noget smart? "Ta alle mapper og lave en zip for hver" agtigt

Pft. Hans

Dette svar er accepteret af OP og tildelt 30 points
avatar
 
Besvar#1 @db Admin svarede for 7 år siden

Hej Hans,

Tak for dit spørgsmål på v5.dk - lad mig se om jeg har forstået dig korrekt.

Du har i /var/www/ en række mapper, og for hver mappe du har, ønsker du en .zip-fil med mappens indhold? Yep! Det er muligt. Vi skal have fat i kommandoen "for" som kan bruges til at lave et loop, et loop der kører alle mapperne igennem.

for i in */; do zip -r "${i%/}.zip" "$i"; done

Hvis du stiller dig på serveren i /var/www/ mappen og kører overstående kommando, så får du en ny .zip-fil for hver mappe.

Kort fortalt:

- for betyder oversat på dansk "ligeså mange gange som der er" og bruges til at køre vores zip-kommando, ligeså mange gange, som der er mapper
- i er navnet på den variabel i laver, det kunne i princippte være hvad-som-helst, vores variabel kommer til at indeholde mappe-navnet, ex. "website1.dk/". Vi kan inde i vores script kalde den igen med $i
 - */ betyder at "alle mapperne", hvis du fjerner / til sidst, tager den også alm. filer
 - ${i%/} denne her er lidt mere kompleks, tuborgklammerne betyder at vi fjerner whitespaces, og %/ bertyder at vi fjerner vores / efter mappe-navn, så vores .zip-fil bliver døbt "website1.dk.zip" og ikke "website1.dk/.zip"

Vigtigt:

 - Husk at cd dig ind i den rigtige mappe, før du kører kommandoen, så du ikke zipper hele din server ;-)

 

Håber dette hjælper dig lidt på vej!


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

Spørgsmålet er besvaret, men du er altid mere end velkommen til at skrive en kommentar!
avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

danielbahl

Forum kategorier

  • Generelt
  • Guides & Howto84
  • Offtopic / Andet158
  • Microsoft Office
  • Microsoft Word11
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X14
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering124
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

Er det værd at have en "portfolio"-hjemmeside!?
Fejlkode i form af bip-lyde ved opstart af gammel stationær PC
MacBook gået ud ved indsættelse at IPhone SE…
Is Weed Legal in Europe
Buy real passport online|Buy counterfeit money
Chrome Auto Fyld holdt op med at virke
ÆØÅ
Tegne Program
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap