Czy istnieje sposób „wyodrębnienia i usunięcia pliku zip” w jednym poleceniu?

13

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ń)

Tom Brito
źródło
Nie znam pojedynczego polecenia, ale możesz ustawić w kolejce drugie polecenie. rozpakuj 1.zip; rm 1.zip
Amey Jah

Odpowiedzi:

13

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:

rozpakuj usuń skrypt nautilus

#!/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
dezorientować
źródło
Nie to, co widziałem, ale działa. W każdym razie dzięki!
Tom Brito
10

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
Mateusz
źródło
2
-rFlaga nie jest tu potrzebna . Pliki zip nie są katalogami, więc nie ma w czym się powtarzać.
Trevor Merrifield
4

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.

Pavlos G.
źródło
tak, właściwie to są 2 polecenia w jednym wierszu .. Naprawdę staram się zapamiętać jedno polecenie, które widziałem, żeby ktoś używał ..
Tom Brito
Nie rozumiem, jak ważne jest, czy jest to jedno czy dwa polecenie. Jesteś pewien, że użył aliasu, czy faktycznie kompresował i używał tar --delete-files?
con-f-use