Não, o Unity não possui uma caixa de exclusão de confirmação, como o Windows. Essa é a razão pela qual o bin existe, por isso, se você cometeu um erro, poderá desfazê-lo pressionando a restauração.
Como eu forço o Nautilus a exigir confirmação sim / não após pressionar a tecla delete?
Estou ciente da opção "Arquivos" - > "Preferências" - > "Comportamento": "Perguntar antes de esvaziar a lixeira ou excluir arquivos", mas ela está marcada e só se aplica ao esvaziamento da Lixeira.
Existe uma maneira de obter uma janela de confirmação antes que os arquivos sejam movidos para a Lixeira?
Antecedentes
O maior problema que eu tenho é que às vezes eu acidentalmente apertei a tecla delete no meu teclado sem nem perceber. Tenho certeza de que isso aconteceu e não posso viver com a ideia de examinar minha pasta de lixo para verificar se não vou jogar fora algo que não pretendia.
Não, o Unity não possui uma caixa de exclusão de confirmação, como o Windows. Essa é a razão pela qual o bin existe, por isso, se você cometeu um erro, poderá desfazê-lo pressionando a restauração.
O fato de o nautilus não fornecer uma opção, não significa que você tenha que correr o risco de perder acidentalmente arquivos se acidentalmente (e despercebido) pressionar a tecla Enter.
Você pode simplesmente executar um script em segundo plano, mantendo um olho nas ações de exclusão, usando o trash-cli
-tools. Se você executar o script abaixo em segundo plano, ele fará duas coisas que impedirão a exclusão não percebida
Ele avisa sempre que você move um arquivo para o lixo:
Sevocêclicarem"OK", nada acontece. Se você clicar em "Cancelar", a lixeira será aberta e você poderá restaurar seu item, desde que você saiba o nome e o caminho original para o arquivo.
Ele registra as últimas 50 ações de lixo (uma por linha)
Em seu diretório inicial, o script cria um arquivo de log, trashlog.txt
, com as últimas 50 ações da lixeira. Isso garante que você possa acompanhar o que aconteceu, mesmo se acidentalmente pressionar o botão "OK".
Registratodososeventosdalixeiracomumregistrodedataehora,como:
TueFeb2407:30:552015:'/home/jacob/Naamlozemap/Naamloosdocument(11ekopie)'TueFeb2407:31:092015:'/home/jacob/Naamlozemap/Naamlozemap'
Emumloop,oscriptverificaalistadearquivosexcluídoscomaajudadetrash-cli
,comocomando:
trash-list
Ocomandolistatodasaçõesdeexclusão,tambémde,e.drivesexternos.
Semprequenovositensaparecemnalista,oscriptchamaumajaneladoZenity,listandoosarquivos(recém)excluídos.Aomesmotempo,essesarquivossãolistadosemumarquivodelog:~/trashlog.txt
.Paraevitarqueoarquivofiquegrande,eleapenas"lembra" (um pouco mais) os últimos 50 eventos de exclusão.
A janela do Zenity retorna um "diferente de zero" quando o botão Cancel
é pressionado, e o script abre Trash
(na verdade trash:///
) para permitir que o usuário restaure o arquivo.
O script usa trash-cli
sudo apt-get install trash-cli
Copie o script abaixo em um arquivo vazio, salve-o como trash_secure
(sem extensão) em ~/bin
. Crie o diretório, se ainda não existir.
Efetue logout e back in, teste-execute o script a partir de um terminal eindow com o comando:
trash_secure
Se tudo funcionar bem, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar.
#!/usr/bin/env python3
import subprocess
import os
import time
home = os.environ["HOME"]
trashlog = home+"/trashlog.txt"
def trashlist():
return subprocess.check_output(["trash-list"]).decode("utf-8")
def log_trash(last_trashed):
if not os.path.exists(trashlog):
with open(trashlog, "wt") as log:
log.write(last_trashed)
else:
with open(trashlog, "r") as log:
log = log.readlines()
log = log[50:]+[last_trashed] if len(log) > 50 else log+[last_trashed]
with open(trashlog, "wt") as out:
for it in log:
out.write(it)
out.write("\n")
trash1 = trashlist()
while True:
time.sleep (1)
trash2 = trashlist()
if trash2 != trash1:
diff = (" ").join(["'"+l[l.find("/"):]+"'" for l in trash2.splitlines() if not l in trash1])
log_trash(time.ctime()+": "+diff)
zenity_message = "zenity --list --width=600 --height=200 --title='Items were trashed' --text='' --column='Path' "+diff
try:
check = subprocess.check_output(["/bin/bash", "-c", zenity_message]).decode("utf-8")
if check != "":
subprocess.Popen(["nautilus", "trash:///"])
except subprocess.CalledProcessError:
subprocess.Popen(["nautilus", "trash:///"])
trash1 = trash2
trash-cli
que o script usa. trash-cli
não fornecem uma opção para fazer isso a partir da linha de comando, exceto uma interativa. Tags nautilus filemanager trash