Sådan udelader du en specifik undermappe i scp-kommandoen: Effektive metoder og tips

Hvordan udelades en specifik undermappe i scp-kommandoen?

For at udelade en specifik undermappe i en scp-kommando kan du bruge rsync med --exclude, tar til at oprette et arkiv uden undermappen, eller kombinere find og cpio.

Hvordan udelades en specifik undermappe i scp-kommandoen?

For at udelade en specifik undermappe i en scp-kommando, kan du ikke direkte bruge scp alene, da scp ikke har en indbygget funktion til at ekskludere filer eller mapper. I stedet kan du kombinere scp med andre kommandoer som rsync eller bruge en midlertidig løsning. Her er nogle metoder:

Metode 1: Brug af rsync med --exclude

rsync er et kraftfuldt værktøj, der kan bruges til at kopiere filer og mapper over SSH, og det har en indbygget mulighed for at ekskludere filer og mapper.

rsync -avz --exclude 'undermappe/' /lokal/sti/ bruger@fjernserver:/fjern/sti/

Metode 2: Brug af tar til at ekskludere undermappen

En anden metode er at bruge tar til at oprette et arkiv uden den specifikke undermappe og derefter bruge scp til at overføre arkivet.

  1. Opret et tar-arkiv uden den specifikke undermappe:
    tar --exclude='undermappe' -czf arkiv.tar.gz /lokal/sti/
  2. Overfør arkivet med scp:
    scp arkiv.tar.gz bruger@fjernserver:/fjern/sti/
  3. Udpak arkivet på fjernserveren:
    ssh bruger@fjernserver 'tar -xzf /fjern/sti/arkiv.tar.gz -C /fjern/sti/'

Metode 3: Brug af find og cpio

Du kan også bruge find og cpio til at kopiere filer uden en bestemt undermappe.

cd /lokal/sti/ && find . -path './undermappe' -prune -o -print | cpio -o | ssh bruger@fjernserver 'cd /fjern/sti/ && cpio -id'

Disse metoder giver dig mulighed for at udelade en specifik undermappe, når du kopierer filer og mapper over SSH.