Czy istnieje sposób (najlepiej za pomocą GUI, ale może to być wiersz poleceń), aby wyodrębnić plik zip i usunąć zip po rozpakowaniu, wszystko w jednym poleceniu?
(Pamiętam, że widziałem kiedyś, jak ktoś robi coś takiego w wierszu poleceń)
Czy istnieje sposób (najlepiej za pomocą GUI, ale może to być wiersz poleceń), aby wyodrębnić plik zip i usunąć zip po rozpakowaniu, wszystko w jednym poleceniu?
(Pamiętam, że widziałem kiedyś, jak ktoś robi coś takiego w wierszu poleceń)
Odpowiedzi:
W przypadku GUI powiedziałbym, że najprostszym sposobem jest skrypt nautilus. Jego główna linia to:
unzip "$item" && trash "$item"
Działa równie dobrze w bash / dash. W Nautilusie wszystko wyglądałoby tak:
#!/bin/bash
# Nautilus script to unzip and then remove a zip archive.
# Nautilus script usually go in "$HOME/.gnome2/nautilus-scripts"
IFS='
'
for item in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
if [ -n "$(file -b "$item" | grep -o 'Zip')" ]; then
unzip "$item" && trash "$item"
# use trash instead of rm to move them to trash
# (trash-cli package installed)
fi
done
Możesz po prostu napisać skrypt bash. Będzie to wyglądać mniej więcej tak:
unzip $1 && rm $1
gdzie $ 1 jest argumentem o wartości nazwy pliku zip. Następnie polecenie rozpakuj alias w pliku ~ / .bashrc, aby uruchomić ten skrypt. A po wpisaniu terminala:
unzip test.zip
dostaniesz:
unzip test.zip && rm test.zip
-r
Flaga nie jest tu potrzebna . Pliki zip nie są katalogami, więc nie ma w czym się powtarzać.
Jest to dość łatwe dzięki poleceniu powłoki:
unzip <filename>.zip && rm <filename>.zip
Być może, jeśli używasz nautilusa, możesz utworzyć odpowiedni nautilus-action
, aby zautomatyzować polecenie poprzez wybór GUI.
tar --delete-files
?