Como faço para o bash me avisar ao substituir um arquivo existente?


34

Eu acho que o título é bastante auto-explicativo. Tudo o que eu quero é que o bash me avise sempre que eu tentar sobrescrever um existente enquanto estiver usando cpou mv. Eu realmente aprecio alguma ajuda. :)

Respostas:


43

Você deve usar o modo interativo, para garantir que você receba um 'aviso antes de substituir'

cp --interactive
mv --interactive

Ou em suma

cp -i
mv -i

Digite man cpou man mvna sua linha de comando para saber mais.


2
Então, eu acho que esses comandos também funcionam como alias no meu .bashrc. Muito obrigado. Agradeço sua ajuda. :)
sayantankhan

3
De fato! Você pode anexar algo como alias rm='rm -i'ao seu .bashrc ou, melhor, ao seu .bash_aliases. Leia mais na postagem Como criar um alias permanente do Bash?
precisa

2
Mas eu apenas pensei em algo. E alguns dos scripts que escrevi. Eles usarão o alias cp e mv ou o normal?
sayantankhan

@ Bolt64 Depende de onde você colocou sua definição de alias, mas geralmente ela usa a definição normal.
Jan Warchoł

12

Você também deseja colocar set -o noclobberno seu .bashrc. Isso gerará um erro se você tentar sobrescrever um arquivo existente pelo redirecionamento de saída.

$ set -o noclobber
$ echo one > afile
$ echo two > afile
bash: afile: cannot overwrite existing file

Você pode forçar o redirecionamento para trabalhar com sintaxe especial:

$ echo two >| afile
$ cat afile
two

http://www.gnu.org/software/bash/manual/bashref.html#Redirecting-Output

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.