GNU/Linux >> Znalost Linux >  >> Ubuntu

Příkaz Tar -cvfz má za následek chybovou zprávu, pokud nevynechám spojovník před „cvfz“?

Tato otázka zde již obsahuje odpovědi :Uzavřeno před 9 lety.

Možný duplikát:
sudo tar cvpzf končí se selháním kvůli předchozí chybě

Když spustím příkaz

tar -cvfz backup.tar.gz somedirectory

Dostávám následující sterr

tar: Exiting with failure status due to previous errors

Když však vynechám předchozí pomlčku z -cvfz vše vypadá, že funguje dobře. Existuje nějaký známý důvod, proč mi pomlčka brání v tarování mých souborů?

Přijatá odpověď:

Nejsem si jistý, proč tar cvfz funguje, podle rychlého skenování man stránce a mé zkušenosti je pomlčka standardní praxí. Možná je to věc kompatibility s BSD (jako ps ).

V každém případě je vaše syntaxe nesprávná. -f vezme další argument jako název souboru, do kterého se má komprimovat. V tomto případě je tento název souboru z , což není to, co jste očekávali. Zde je ukázka výstupu, abyste viděli, co tím myslím:

$ tar -cvfz test.tar.gz scott
tar: test.tar.gz: Cannot stat: No such file or directory
scott/
scott/netx/
scott/netx/locks/
scott/netx/locks/netx_running
tar: Exiting with failure status due to previous errors

ls zobrazí soubor s názvem z . file příkaz odhalí, že se jedná o nekomprimovaný tar archiv. Je nekomprimovaný, protože -z argument neprošel. A chybová zpráva přišla při pokusu o přidání neexistujícího souboru test.tar.gz do archivu.

Jednoduše změňte pořadí možností a budete v pořádku:

tar -czvf test.tar.gz some/directory

Pokud vždy použijete -f poslední argument, budeš v pořádku. Mimochodem, pamatujte, že krátké možnosti (jednopísmenné možnosti), které obsahují argumenty, obvykle nevyžadují mezeru mezi možností a argumentem.

UPRAVIT: Mimochodem, pokud je formulář bez spojovníku kompatibilní s BSD nebo něco podobného, ​​pak je pravděpodobné, že způsob, jakým tar je v takovém prostředí vyvolán je odlišný a nevyžaduje f flag k určení vstupního souboru, ale funguje spíše jako cp nebo něco. Ale to je jen spekulace založená na srovnání s ps (q.v.).

Související:Jak streamovat hudbu přes síť do více počítačů v Ubuntu?
Ubuntu
  1. Jak používat příkaz Tar v Linuxu

  2. Nemohu extrahovat soubor Tar.bz2:Chybová zpráva, soubor .h:Povolení odepřeno?

  3. Co je stromový příkaz v Ubuntu?

  1. Jak extrahovat soubor tar.gz v Linuxu pomocí příkazového řádku

  2. Je možné přenést výsledky FIND do příkazu COPY CP?

  3. Extrahujte tar chybu souboru tar.bz2

  1. Jak používat příkaz sudo v Linuxu

  2. Jak používat příkaz wall v Linuxu

  3. Jak zkombinovat příkaz „tar“ s příkazem „najít“