script recuperar archivo Archive

Find + exec, para reemplazar cadenas en ficheros

Pequeño script para Linux que podemos ejecutar en la línea de comandos y que nos permite buscar una cadena y reemplazarla por otra, en múltiples ficheros. Esto es tremendamente útil cuando cambiamos algún nombre, un título de una página html, el nombre de un archivo… y queremos actualizar todos los ficheros que hacen referencia a él. Para ello basta con ejecutar:

find . -type f -exec sed -i s/cadenaVieja/cadenaNueva/g {} \;

Esta línea en concreto buscaría en el directorio actual, y reemplazaría en todos los ficheros las apariciones de cadenaVieja, por cadenaNueva.

Script para recuperar archivos que se han perdido

Si tratas de entrar a un archivo y no se abre porque se ha estropeado existe una forma de poder recuperarlo.

Si el archivo era realmente importante lo que se puede hacer es escanear el disco duro por bloques buscando la informacion que contiene, alguna palabra que sea lo suficientemente especifica como para estar solo en el archivo que acabas de perder.

El script es el siguiente:

#!/usr/bin/python
 
import os
for i in range(0,1000):
print "Pasada por el bucle:"
print i
print "=========================="
seek = i * 100000
os.system('rm /fich%s' % str(i-1))
os.system('dd if=/dev/sda3 of=/fich%s bs=512 count=100000 skip=%i' % (str(i), seek,) )
os.system("grep --binary-files=text -A 200 -B 200 -b '<span style="font-weight: bold;">palabra que sabes que esta en el fichero y que no crees que vaya a estar en otro</span>' /fich%s &gt;&gt; <span style="font-weight: bold;">results.txt</span>" % str(i))
os.system('rm /fich%s' % str(i))
os.system('sync')