¿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. :)

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.


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.