Idiomatisk brug af tar til stdout og udpakning til anden mappe: Bedste metoder

Hvad er den idiomatiske måde at gøre følgende på: tar til stdout, læse denne tar-output fra stdout og udpakke til en anden mappe? Løsningen er tar --to-stdout .. | tar -C somefolder -xvf -, men måske findes der en mere idiomatisk måde at gøre det på?

Den idiomatiske måde at bruge tar til stdout og udpakke til en anden mappe kan gøres med kommandoen "tar --to-stdout .. | tar -C somefolder -xvf -", men alternativer som "tar -cf - .. | tar -C somefolder -xf -" eller "tar -cf - .. | tar --directory=somefolder -xf -" kan være mere læsbare og præcise.

Idiomatisk måde at bruge tar til stdout og udpakke til en anden mappe

Den idiomatiske måde at bruge tar til at skrive til stdout og derefter læse denne tar-output fra stdout og udpakke til en anden mappe, kan gøres med følgende kommando:

tar --to-stdout .. | tar -C somefolder -xvf -

Men der kan være en mere idiomatisk måde at gøre dette på. Her er nogle alternative metoder:

Brug af tar med -cf og -xf

En anden måde at opnå det samme resultat på er ved at bruge tar med -cf og -xf flagene:

tar -cf - .. | tar -C somefolder -xf -

Dette gør det samme som den oprindelige kommando, men er lidt mere kompakt og kan betragtes som mere idiomatisk i nogle kredse.

Brug af tar med --directory flag

En anden metode er at bruge --directory flaget for at specificere destinationsmappen direkte:

tar -cf - .. | tar --directory=somefolder -xf -

Dette gør det klart, hvor filerne skal udpakkes, og kan være mere læsbart for nogle brugere.

Opsummering

Selvom den oprindelige kommando tar --to-stdout .. | tar -C somefolder -xvf - er korrekt og fungerer fint, kan de alternative metoder med -cf og -xf flagene eller brugen af --directory flaget betragtes som mere idiomatiske og læsbare:

  • tar -cf - .. | tar -C somefolder -xf -
  • tar -cf - .. | tar --directory=somefolder -xf -

Valget af metode afhænger af præference og kontekst, men alle tre metoder er gyldige og effektive måder at opnå det ønskede resultat på.