[Megoldva]Tar hiba

Fórumok

Kezdő kérdésem van. Egyszerű adatmendést szerettem volna tar segítségével. Mi ebben a parancsban a hiba?
/# tar -cvfpz backup.tar.gz home etc root usr/local
A hibaüzenet:tar: Kilépés hibaállapottal a korábbi hibák miatt
Válaszaitokat előre is köszönöm.

Hozzászólások

"Kilépés hibaállapottal a korábbi hibák miatt"
És mik voltak azok a korábbi hibák?

Egyébként man tar:

  -f, --file ARCHIVE
    use archive file or device ARCHIVE

Tehát a "-f" után a file neve áll. Nálad most ez "pz" lenne. Ezért a listában érdemes az utolsó helyre tenni.

"Korábbi hibák nem voltak."
Biztos volt legalább egy, amennyiben eredetileg nem volt /backup.tar.gz nevű file-od.

Mert konkrétan az volt a hiba. A fenti parancsod azt tette, hogy egy "pz" nevű archív file-ba próbálta belegyömöszölni a backup.tar.gz file tartalmát, valamint a home etc root usr/local könyvtárak alatti tartalmat. És eredetileg nem volt backup.tar.gz file, hiszen azt akartad létrehozni, csak rossz volt a paraméterek sorrendje. A tar pedig panaszkodott amiatt, hogy nem találja a backup.tar.gz-t, ezt a tar kimenetének legelső sorában láthattad volna. Ez volt az a hiba, amit az utolsó sorban jelzett, és amit bemásoltál.

Tehát a helyes paraméterezés ez lett volna:

# tar -cvpzf backup.tar.gz home etc root usr/local

Látom, közben megoldódott.

Nemrég én is ugyanilyen hibaüzenetet kaptam egy tar-olás során (persze nem magyarul), de a log-ban nem volt se error, se warning
(Note: pl. így érdemes futtatni, ha azt akarjuk, hogy nyoma maradjon: someprogram options 2>&1 | tee log.someprogram)

tar cfpvz csomagnév mit mit2 mit3 ...

lásd manual:

tar [options]

nem kell - jel elé, ez a baj. ugyanis az f operation nél is van, meg optionnél -f. De a kettő nem ugyanaz, úgyhogy nem a sorrend a baj, hanem a kötőjel.

"A műveleti módoknál nincs 'f', ami van, azok viszont kötőjellel bevezetendők."
Valóban nincs f a műveleti módoknál, viszont éppen a manual mondja ki, hogy nem kötelező a kötőjel a műveleti módokat meghatározó jelölések előtt - illetve mivel összevonható egyéb rövid opciókkal, így azok elé sem kell.

 
man tar (1.26):
 
SYNOPSIS
  tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t --list | --test-label | u --update | x --extract --get [options] [pathname ...]

DESCRIPTION
  ...
  The first argument to tar should be a function; either one of the letters Acdrtux, or one of the long function names. A function letter need not be prefixed with ``-'', and may be combined with other single-letter options.

 
 
Azaz egyértelműen leírja, hogy a kötőjel opcionális, valamint jelöli is. Tehát kitehető, de el is hagyható.

"ugyanis az f operation nél is van"
Erről nem csak a man nem tesz említést, hanem a bináris sem ismeri, el sem fogadja:

  # tar f egy ketto
  tar: You must specify one of the `-Acdtrux' or `--test-label'  options
  Try `tar --help' or `tar --usage' for more information.
  #

  # tar --version
  tar (GNU tar) 1.26
  Copyright (C) 2011 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  
  Written by John Gilmore and Jay Fenlason.
  #

"nem kell - jel elé, ez a baj."
Lássuk a mant, különös tekintettel a "need not be" részre, ami azt súgná, hogy ezen nem lenne szabad elvéreznie:
 
man tar (GNU 1.26):
The first argument to tar should be a function; either one of the letters Acdrtux, or one of the long function names. A function letter need not be prefixed with ``-'', and may be combined with other single-letter options.