GNU/Linux >> Znalost Linux >  >> Linux

Aktualizace jednoho souboru v komprimovaném taru

Pokud je soubor, který chcete aktualizovat, textový soubor. Pak můžete použít vim editor přímo otevřít tarball, který obsahuje soubor a otevřít jej, stejně jako otevřít složku pomocí editoru vim. Poté soubor upravte a uložte a ukončete.

Pokud je však soubor binární. Nemám ponětí o řešení.


No, našel jsem odpověď.

Nemůžete použít tar -u se zazipovaným archivem. Takže řešení, které jsem použil, bylo následující. Všimněte si, že jsem přesunul z.jar soubor do složky, kterou jsem vytvořil v aktuálním adresáři s názvem application/x/y pro tento účel.

gzip -d application.tar.gz
tar -uf application.tar application/x/y/z.jar
gzip application.tar

Když jsem udělal tar -tf application.tar (po aktualizaci, před gzip) se zobrazoval správně.


v mém případě jsem musel soubor smazat a poté přidat nový soubor podle následujících kroků:

můj soubor tar

file.tar
└── foo.json
└── bar.json
└── dir
    └── zoo.json

a chtěl jsem pouze upravit/aktualizovat foo.json soubor bez rozbalování a opětovného vytváření celého souboru tar file.tar , Zde jsou příkazy:

tar -x -f file.tar foo.json # extract only foo.json file to my current location
# now modify the file foo.json as you want ...
tar --delete -f file.tar foo.json # delete the foo.json file from the file.tar
tar -uf file.tar foo.json # add the specific file foo.json to file.tar

komprimovaný soubor:

pokud se jedná o komprimovaný soubor, například file.tar.gz , budete muset extrahovat soubor tar z komprimovaného souboru (v tomto příkladu gzip) pomocí gunzip file.tar.gz který vám vytvoří tar soubor file.tar . pak budete moci provést výše kroky.

na konci měli byste znovu komprimovat soubor tar pomocí gzip file.tar který vám vytvoří komprimovaný soubor s názvem file.tar.gz

podadresáře:

abyste mohli pracovat s podadresáři, budete muset zachovat stejnou strukturu také v systému souborů:

tar -x -f file.tar dir/zoo.json
# now modify the file dir/zoo.json as you want ...
tar --delete -f file.tar dir/zoo.json
tar -uf file.tar dir/zoo.json

zobrazení struktury souboru:

pomocí less můžete zobrazit strukturu souboru:

less file.tar

drwxr-xr-x root/root         0 2020-10-18 11:43 foo.json
drwxr-xr-x root/root         0 2020-10-18 11:43 bar.json
drwxr-xr-x root/root         0 2020-10-18 11:43 dir/zoo.json


Linux
  1. Otevření souboru .tar.gz jediným příkazem

  2. Jak RSYNC jeden soubor?

  3. Neplatná komprimovaná data – porušený formát?

  1. Extrahujete soubor *.tar.bz2?

  2. tar:krátké čtení

  3. Komprimujte každý soubor v adresáři do vlastního komprimovaného souboru

  1. Kopírování 1TB řídkého souboru

  2. Jak extrahovat soubor filename.tar.gz

  3. tar -C se vzorem souboru zástupných znaků