Czy znasz nazwę pliku w archiwum przed rozpakowaniem? Możesz utworzyć funkcję do rozpakowywania /tmp
, edytowania i odświeżania zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Jak mówi, użycie jest następujące:
zipedit myarchive.zip myfile.txt
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ąc bash
...
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.
zipedit(){
echo "Usage: zipedit archive.zip folder/file.txt"
curdir=$(pwd)
unzip "$1" "$2" -d /tmp
cd /tmp
vi "$2" && zip --update "$curdir/$1" "$2"
# remove this line to just keep overwriting files in /tmp
rm -f "$2" # or remove -f if you want to confirm
cd "$curdir"
}
Dzięki za pytanie. Prawdopodobnie też skończę z tym!
Kolejna edycja: nieprzetestowane, ale przeczytałem to vim
i emacs
będę bezpośrednio edytować pliki jar?