Zip kun specifikke filer i en mappe med Bash: Trin-for-trin guide

Hvordan kan bash instrueres til kun at zippe de filer, der matcher en bestemt forespørgsel, og ikke alle filer i en mappe?

For at zippe kun de filer, der matcher en bestemt forespørgsel i en mappe, kan du bruge bash-kommandoerne find og zip sammen med xargs for at sende output fra find til zip.

Hvordan kan bash instrueres til kun at zippe de filer, der matcher en bestemt forespørgsel, og ikke alle filer i en mappe?

For at zippe kun de filer, der matcher en bestemt forespørgsel i en mappe, kan du bruge bash sammen med kommandoer som find og zip. Her er en trinvis vejledning:

  1. Brug find kommandoen: Find de filer, der matcher din forespørgsel. For eksempel, hvis du vil finde alle .txt filer, kan du bruge:

    find /sti/til/mappen -name "*.txt"
  2. Brug zip kommandoen: Kombiner find kommandoen med zip for at zippe de fundne filer. Du kan bruge xargs til at sende output fra find til zip:

    find /sti/til/mappen -name "*.txt" | xargs zip arkivnavn.zip
  3. Undgå problemer med mellemrum i filnavne: Hvis dine filnavne indeholder mellemrum, kan du bruge -print0 med find og -0 med xargs:

    find /sti/til/mappen -name "*.txt" -print0 | xargs -0 zip arkivnavn.zip

Her er en kort forklaring af de anvendte kommandoer:

  • find /sti/til/mappen -name "*.txt": Finder alle .txt filer i den angivne mappe.
  • xargs zip arkivnavn.zip: Sender output fra find til zip kommandoen for at oprette en zip-fil med navnet arkivnavn.zip.
  • -print0 og -0: Sikrer korrekt håndtering af filnavne med mellemrum.

Ved at følge disse trin kan du effektivt zippe kun de filer, der matcher en bestemt forespørgsel, i stedet for alle filer i en mappe.