Existe um script / aplicativo Linux que, em vez de excluir arquivos, os move para um local especial de "lixo"? Eu gostaria disso como um substituto para rm
(talvez até apelidado o último; existem prós e contras para isso).
Por "lixo", quero dizer uma pasta especial. Um mv $* ~/.trash
é o primeiro passo, mas, idealmente, isso também deve lidar com a lixeira de vários arquivos com o mesmo nome, sem sobrescrever os arquivos lixeira mais antigos, e permitir restaurar os arquivos no local original com um comando simples (uma espécie de "desfazer"). Além disso, seria bom se o lixo fosse esvaziado automaticamente na reinicialização (ou um mecanismo semelhante para impedir o crescimento sem fim).
Existem soluções parciais para isso, mas a ação de "restauração" em particular não é trivial. Existe alguma solução para isso que não dependa de um sistema de lixo de um shell gráfico?
(À parte, houve inúmeras discussões sobre se essa abordagem é justificada, em vez de usar backups freqüentes e VCS. Embora essas discussões tenham razão, acredito que ainda haja um nicho para minha solicitação.)
gvfs-trash
no passado, mas nunca tive a necessidade de restaurar a partir da linha de comando até que você despertou minha curiosidade. A resposta para a pergunta vinculada pode ser útil.Respostas:
Há uma especificação (rascunho) para o Lixo no freedesktop.org. Aparentemente, é o que geralmente é implementado pelos ambientes de desktop.
Uma implementação de linha de comando seria lixo-cli . Sem ter um olhar mais atento, parece fornecer a funcionalidade que você deseja. Caso contrário, diga-nos até que ponto isso é apenas uma solução parcial.
No que diz respeito ao uso de qualquer programa como substituto / alias
rm
, há boas razões para não fazer isso. Os mais importantes para mim são:rm
as opções e agir em conformidadefonte
rm
para não poder usá-la acidentalmente (ainda há/bin/rm
caso eu realmente precise dela).O Trash-cli é um aplicativo linux que pode ser instalado usando o apt-get no Ubuntu ou yum no Fedora. O uso do comando
trash listOfFiles
moverá o especificado para a lixeira.fonte
As respostas anteriores mencionam comandos
trash-cli
ermtrash
. Nenhum deles é encontrado por padrão no Ubuntu 18.04, mas o comandogio
é. Comandandogio help trash
saídas:Eu testei usando
gio trash FILENAME
na linha de comando e funciona como se eu tivesse selecionado o arquivo no navegador de arquivos e clicado no botão DEL: o arquivo é movido para a pasta Lixeira da área de trabalho. (O comando não solicita confirmação, embora eu não tenha usado a-f
opção.)A exclusão de arquivos dessa maneira é reversível, embora seja mais conveniente do que redefinir
rm
para garantirrm -i
a segurança e ter que confirmar cada exclusão, o que ainda deixa você sem sorte se confirmar acidentalmente uma exclusão que não deveria ter.Eu adicionei
alias tt='gio trash'
ao meu arquivo de definições de alias;tt
é um mnemônico para To Trash.Adicionado na edição em 27/06/2018: nas máquinas servidoras, não há equivalente a um diretório da lixeira. Eu escrevi o seguinte script Bash que faz o trabalho; em máquinas de mesa, ele usa
gio trash
e em outras máquinas move os arquivos fornecidos como parâmetros para um diretório de lixo que ele cria. Script atualizado em 2019-09-05.fonte
Há um pequeno utilitário chamado rmtrash que faz isso.
Parece não responder a parâmetros como
-r
ou-f
(parece estar apenas movendo o arquivo / diretório para o diretório ~ / .Trash), mas não substitui arquivos com o mesmo nome (acrescenta "Copiar" a arquivos / diretórios com nomes semelhantes).Para instalar com o brew
fonte
Aqui está um sistema de lixo rápido e sujo que lida com conflitos de nome e até permite vários arquivos excluídos no mesmo caminho, desde que você não exclua mais de um arquivo por segundo.
Aviso: digitei esse código diretamente no meu navegador. Provavelmente está quebrado. Não use em dados de produção.
Problemas conhecidos:
trash
deve lidar com novas linhas nos nomes de arquivos, masuntrash
não porque dependegrep
e as novas linhas não são escapadas no arquivo de metadados.fonte
Comece definindo uma
move_to_trash
função:Depois, alias
rm
para isso:Você pode sempre chamar idade
rm
escapando-lo com uma barra invertida, como este:\rm
.Não sei como tornar o diretório da lixeira vazio na reinicialização (dependendo do sistema, talvez seja necessário pesquisar nos
rc*
scripts), mas também pode valer a pena criar umacron
tarefa que esvazie o diretório periodicamente.fonte
rm
e seus arquivos.del
pode ser uma escolha melhor.Você pode usar meu del:
http://fex.belwue.de/fstools/del.html
del move arquivos em um subdiretório .del (e vice-versa)
fonte
No KDE 4.14.8, usei o seguinte comando para mover arquivos para a lixeira (como se tivessem sido removidos no Dolphin):
Apêndice I: Encontrei sobre o comando com
Apêndice II: a função (depois forneça-a no seu .bashrc)
fonte