Existe uma maneira de "extrair e excluir arquivo zip" em um único comando?


13

Existe uma maneira (preferível via GUI, mas pode ser via linha de comando) extrair um arquivo zip e excluir o zip após a extração, tudo em um único comando?

(Lembro que vi alguém fazendo algo assim na linha de comando um dia)


Não estou ciente do comando único, mas você pode enfileirar o segundo comando. descompacte 1.zip; rm 1.zip
Amey Jah

Respostas:


13

Para uma GUI, eu diria que a maneira mais fácil é um script nautilus. A linha principal seria:

unzip "$item" && trash "$item"

Funciona no bash / dash com a mesma facilidade. No nautilus, a coisa toda seria assim:

descompacte excluir script 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

Não é o que eu vi, mas funciona. De qualquer forma, obrigado!
Tom Brito

10

Você pode simplesmente escrever um script bash. Vai parecer algo assim:

unzip $1 && rm $1

onde $ 1 é o argumento com um valor do nome do arquivo do seu arquivo zip. Em seguida, alias descompacte o comando no arquivo ~ / .bashrc para executar este script. E depois de digitar o terminal:

unzip test.zip

você vai ter:

unzip test.zip && rm test.zip

2
Não há necessidade da -rbandeira aqui. Os arquivos zip não são diretórios, portanto não há como recursar.
Trevor Merrifield

4

É bem fácil através de um comando shell:

unzip <filename>.zip && rm <filename>.zip

Talvez, se você estiver usando o nautilus, possa criar um relevante nautilus-actionpara automatizar o comando através de uma seleção da GUI.


sim, na verdade, estes são 2 comandos em uma única linha .. Eu realmente estou tentando lembrar o único comando que vi alguém uso ..
Tom Brito

Não vejo como isso importa, seja um ou dois comandos. Tem certeza de que ele usou um pseudônimo ou foi de fato compactado e usado tar --delete-files?
con-f-use
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.