miércoles, 25 de abril de 2012

Evitar sobreescribir archivos con redirecciones


A continuación explicare brevemente como evitar sobreescribir archivos existente cuando intentamos usar redirecciones en Debian squeeze. Esto puede variar dependiendo de la distribucion.

  • Usar el comando set -o noclobber para evitar que se que sobreescriba un archivo existente.
  • Si queremos quitar la proteccion ultilizamos >|
  • Si queremos que la proteccion se presente de forma permanente debemos incluir el comando set -o noclobber en el shell predeterminado del usuario. Ejemplo: .bashrc, .cshrc, entre otros.
Veamos los siguientes ejemplos:

johnny@debianJG:~/Documents/pruebas$ free > archivo1
johnny@debianJG:~/Documents/pruebas$ cat archivo1
total used free shared buffers cached
Mem: 2853196 1038132 1815064 0 269776 403900
-/+ buffers/cache: 364456 2488740
Swap: 1951736 0 1951736
johnny@debianJG:~/Documents/pruebas$ ls -l archivo1
-rw-r--r-- 1 johnny johnny 230 Apr 5 22:14 archivo1
johnny@debianJG:~/Documents/pruebas$ set -o noclobber
johnny@debianJG:~/Documents/pruebas$ uptime > archivo1
bash: archivo1: cannot overwrite existing file

johnny@debianJG:~/Documents/pruebas$ ls >| archivo1
johnny@debianJG:~/Documents/pruebas$ cat archivo1
!
archivo1
archivo2
archivo3
archivo4
-C
d
este>archivo
mi archivo
ooooo
-V

No hay comentarios:

Publicar un comentario