Czasami muszę wprowadzić zmiany w pliku .zip lub .jar, więc zwykle przenoszę go /tmp
, rozpakuj wszystkie pliki unzip
, edytuj kilka plików, a następnie ponownie skompresuj. To działa, ale może być nudne. Czy istnieje narzędzie lub skrypt powłoki, którego można użyć do edycji pliku wewnątrz pliku zip bez jawnego wywoływania unzip
i zip
(nawet jeśli jest to tylko opakowanie tych poleceń)?
47
Odpowiedzi:
Czy znasz nazwę pliku w archiwum przed rozpakowaniem? Możesz utworzyć funkcję do rozpakowywania
/tmp
, edytowania i odświeżania zip:Jak mówi, użycie jest następujące:
To rozpakowuje nazwany plik z archiwum, zapisuje go
/tmp
, edytuje,vi
a następnie dodaje z powrotem do archiwum, „zbierając” ścieżkę. Dodaj do swojego .bash_profile, zakładającbash
...EDYCJA: Poniżej znajduje się wersja, która działa z podfolderami w archiwum ... Uwaga: nie używaj ukośnika przed nazwą folderu (tzn.
myfolder/file.txt
Nie używaj/myfolder/file.txt
). Jeśli edytujesz plik, który jeszcze nie istniał w archiwum, utworzy go dla Ciebie. Nie jestem również pewien, czy będzie działać z bezwzględną ścieżką do pliku zip. Najlepszy kij z krewnym.Dzięki za pytanie. Prawdopodobnie też skończę z tym!
Kolejna edycja: nieprzetestowane, ale przeczytałem to
vim
iemacs
będę bezpośrednio edytować pliki jar?źródło
Vim obsługuje przezroczystą edycję plików w plikach zip. Po prostu wykonaj:
vim file.zip
i zostanie wyświetlona lista plików w archiwum zip. Wybierz ten, który chcesz edytować, zmień co chcesz i wyjdź za pomocą: x
Jeśli
vim
odpowiada:.. po prostu uruchom
:set modifiable
lub:set ma
(źródło: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )źródło
Krótka odpowiedź: NIE.
Jeśli jest to wrapper, to są nazywając tych poleceń. W każdym razie najlepsze, co mogę wymyślić, to otworzyć plik za pomocą
file-roller
, jeśli jesteś w środowisku X, który może działać za pomocą podwójnego kliknięcia, w zależności od konfiguracji. Następnie możesz dwukrotnie kliknąć skompresowany plik, aby go otworzyć, a następnie możesz go edytować:Po zapisaniu edytowanego pliku powinieneś wyświetlić następujące okno dialogowe:
Możesz również utworzyć skrypt do tego, ale komplikuje się, jeśli masz skompresowane archiwa zawierające wiele plików. Daj mi znać, jeśli tego potrzebujesz, a może uda mi się coś ugotować.
źródło
Krótka pedantyczna odpowiedź; Nie. Jeśli myślisz o kompresji, używasz redundancji, aby skrócić pliki w środku, więc każda edycja zmienia cały plik w archiwum, prawdopodobnie archiwum.
Jeśli jesteś mniej teoretyczny, bardziej praktyczny, bardziej „Nie chcę ręcznie rozpakowywać / zipować”, możesz skorzystać z narzędzi. Arka w Linuksie jest tym, z którego korzystałem. Możesz także zamontować archiwum za pomocą fuse-zip , ale to prawdopodobnie więcej pracy niż plik tymczasowy.
źródło
fuse-zip
.Według strony man dla
zip
(wersja online dla łatwego odniesienia: http://linux.die.net/man/1/zip ),zip
polecenie ma-u
flagę, którą opisuje jako:źródło
Menedżer plików Directory Opus 12 pozwoli ci przeglądać Zip, a następnie przeciągnij i upuść edytowany plik z innego folderu do niego i nadpisz plik, który chcesz edytować, i zrobi to wszystko w locie. Bardzo łatwe
źródło
Napisałem wtyczkę Vima, która rozszerza standardowy plik zip.vim do przeglądania i edycji zagnieżdżonych plików zip.
https://github.com/lbrayner/vim-rzip
źródło
Możesz użyć standardowego edytora tekstu KDE, na przykład:
źródło