Que vamos a ver en este artículo:
Cada una de estas opciones realiza una de las operaciones que no interfieren en la otras, es decir, la opción 2 lista ficheros pero no los borrará ni los vaciará.
El script lo dejo en github
Funciona también en Mac y en Windows si se ejecuta desde un entono linux con el subsistema de windows para linux.
Como funciona el script
Para ejecutarse necesita que se le pase un directorio donde buscar y una extensión de fichero log, por ejemplo, sin * ni punto delante o se le pasa '*' para que lo busque todo, si, el asterisco entre comillas y si se le pasa la extensión no son necesarias las comillas.Si no se ponen parámetros sale el mensaje de ayuda:

Al ejecutar el script correctamente:
./file-seeker.sh /path/to/dir/ log
Presenta un menú para elegir lo que queremos hacer:

Si elegimos la opción 1, por ejemplo, buscara los ficheros .log

Las opciones 2, 3 y 4 presenta un segundo mensaje para confirmar el borrado porque una vez borrado no se podrán recuperar los datos
Listar ficheros de un directorio y sus sub-directorios
Esta opción es sencilla y simple, solo hace un listado de los ficheros buscados, mostrará los ficheros puestos en el filtro y el directorio donde están, por ejemplo, si buscamos todo:
Vaciar ficheros de un directorio y sus sub-directorios
Esta opción vaciará por dentro los ficheros seleccionados por completo y los dejará en blanco, NO los borrará.Ejecuta esta instrucción de vaciado
echo "" > /path/to/file.log
Nada mas que decir :-)
Eliminar permanente ficheros de un directorio y sus sub-directorios
Esta parte lo que hace es:- 1) Encriptar el contenido del fichero
- 2) Sobre escribimos el fichero 15 veces con shred
- 3) Renombramos 5 veces el fichero de forma random con un hash
- 4) Sobre escribimos el fichero con un texto aleatorio
- 5) Eliminamos el fichero del disco
echo -e "Encrypting file: ${GREEN}$item${RESET} (${GREEN}$size${RESET})"
#
# Primero encriptamos el contenido del fichero
#
if openssl enc -aes-256-cbc -salt -pbkdf2 -in "$item" -out "$item" -pass pass:"$password" 2>/dev/null; then
echo -e "File encrypted and saved as: ${GREEN}$item${RESET}"
else
echo -e "${RED}Error encrypting file: $item. Skipping...${RESET}"
fi
#
# Una vez codificado lo sobre escribimos con datos random con el programa shred 15 veces
# podemos poner mas veces o menos y después de se sobre escribe con ceros
#
echo -e "Overwriting original file with random data ${overwrite} times: ${GREEN}$item${RESET}"
shred -n${overwrite} -f -z "$item" # Overwrite the file 5 times with random data and zeros
#
# Ahora renombramos el fichero con un hash aleatorio 5 veces
#
for i in {1..5}; do
# Generate an MD5 hash based on the current name and timestamp
hash=$(echo "$item-$(date +%s)" | md5sum | cut -d' ' -f1)
new_name="$(dirname "$item")/$hash"
# Rename the file
mv "$item" "$new_name"
echo -e "File renamed to: ${GREEN}$new_name${RESET} number $i"
item="$new_name"
done
#
# Y por ultimo lo sobre escribimos con un texto y lo eliminamos del disco
#
echo "Lorem ipsum dolor sit amet, consectetur adipisicing elit" > "$new_name"
rm -f "$new_name"
echo -e "File deleted: ${RED}$new_name${RESET}"
Eliminar directorios vacíos
Y por ultimo tenemos la opción de eliminar los directorios vacíos.Antes de borrar el directorio también lo renombrar con un hash 5 veces de forma random.
for i in {1..5}; do
# Generate a random hash for renaming
hash=$(echo "$dir-$(date +%s)" | md5sum | cut -d' ' -f1)
new_name="$(dirname "$dir")/$hash"
# Rename the directory
mv "$dir" "$new_name"
dir="$new_name"
done
Y después de renombrarlo 5 veces lo borramos del disco.
NOTA: esta opción no esta del todo optimizada y para eliminar completamente todos los subdirectorios hay que pasar varias veces esta opción hasta que se elimina el directorio por completo.
Conclusión
Poca cosa decir en la conclusión solo que con este script podéis eliminar de forma muy segura ficheros y directorios.Podéis modificarlo al gusto.
Y esto es todo !!!
Gracias por seguirme y leerme, espero que les haya ayudado
Saludos
Alex
:-)
/