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