rm -I para impedir rm acidental

5

Acabei de criar alias rm="rm -I" para evitar o comando acidental rm .

-I     prompt  once before removing more than three files, or when removing recursively.
       Less intrusive than -i, while still giving protection against most mistakes

Mas isso não funciona. Não recebo nenhuma solicitação quando uso rm -rf

    
por Sourabh 02.12.2013 / 19:56

2 respostas

9

Se você ler a ajuda novamente , verá anterior --interactive . Isso significa que você pode adicionar um -I depois de todos os outros argumentos (como no final da linha) e ele será honrado novamente!

Para fazer isso, você precisa de uma função em vez de um alias, mas apenas coloque isso em algum lugar no seu .bashrc (et al) e você é de ouro:

function rm { /bin/rm "$@" -I; }

Um método talvez mais seguro do que isso é usar o comando trash-cli ' trash-put '. Ele colocará as coisas no diretório de lixo da sua conta que podem ser revisadas / restauradas / esvaziadas normalmente. Ele também tem% dum -r , -f e -i argumentos para que seja possível criar um alias perfeito:

alias rm="trash-put"
    
por Oli 02.12.2013 / 20:22
6

O problema aqui é que -f torna rm ignorar qualquer comando interativo:

'-f'
'--force'
   Ignore nonexistent files and missing operands, and never prompt
   the user.  Ignore any previous '--interactive' ('-i') option.

Origem: info coreutils 'rm invocation'

    
por Braiam 02.12.2013 / 20:02

Tags