¿Cómo hago que bash me avise cuando sobrescribo un archivo existente?

34

Creo que el título se explica por sí mismo. Todo lo que quiero es bash para advertirme cada vez que intente sobrescribir una existente mientras uso cpo mv. Realmente agradecería algo de ayuda. :)

sayantankhan
fuente

Respuestas:

43

Debe usar el modo interactivo que asegura que obtenga un 'aviso antes de sobrescribir'

cp --interactive
mv --interactive

O en resumen

cp -i
mv -i

Escriba man cpo man mven su línea de comando para obtener más información.

don.joey
fuente
2
Así que supongo que esos comandos también van como alias en mi .bashrc. Muchas gracias. Aprecio tu ayuda. :)
sayantankhan
3
¡En efecto! Puede agregar algo como alias rm='rm -i'a su .bashrc o mejor sus .bash_aliases. Lea más en la publicación ¿Cómo creo un alias Bash permanente?
don.joey
2
Pero solo pensé en algo. ¿Qué pasa con algunos de los guiones que he escrito? ¿Usarán el alias cp y mv o el normal?
sayantankhan
@ Bolt64 Depende de dónde coloque su definición de alias, pero generalmente usará la definición normal.
Jan Warchoł
12

También desea poner set -o noclobberen su .bashrc. Esto generará un error si intenta sobrescribir un archivo existente mediante la redirección de salida.

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

Puede forzar la redirección para que funcione con una sintaxis especial:

$ echo two >| afile
$ cat afile
two

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

Glenn Jackman
fuente