Shellscript: lectura de la ruta del archivo de texto para restaurar

1

Estoy trabajando en un script de Papelera de reciclaje al que puedo llamar para eliminar un archivo y restaurar un archivo.

La eliminación actualmente funciona bien y se puede llamar usando un comodín, nombre de archivo (para el directorio actual) o una ruta de archivo completa por completo. Luego toma este archivo y lo almacena en / root / Dustbin / ...

# del example.txt

Al hacerlo, también almacena la ruta de archivo original en un archivo log.txt en el cubo de basura.

Ahora mi pregunta es esta: ¿cómo haría para restaurar el archivo a su ubicación original (que se almacena en el archivo log.txt)?

Mi código para restaurar es actualmente:

#!/bin/sh

for path in "$@"; do
find /root/Dustbin -name "$path" -exec mv {} ./ \;
done

#End of script

Por el momento, esto restaura el archivo especificado de Dustbin a mi ubicación actual usando

# restore example.txt

Gracias

William
fuente

Respuestas:

0

Sin más detalles sobre el archivo de registro, es difícil dar una respuesta exacta, pero aquí hay algunos consejos.

Use greppara seleccionar la línea correcta del registro. Asegúrese de hacer que el comando sea lo suficientemente específico como para obtener exactamente un resultado al anclar la búsqueda utilizando elementos como el inicio de una línea ( ^) o haciendo coincidir los delimitadores que use en su registro.

Use awko sedpara leer la ruta desde la línea que grepdevolvió el comando. Nuevamente, asegúrese de obtener la ruta completa y solo los elementos de la ruta que necesita. (Cuidado con los espacios en blanco, etc.)

Al especificar el objetivo para restaurar de nuevo, asegúrese de estar atento a los espacios en blanco y otros caracteres que puedan estropear el mvcomando citando correctamente la ruta. Para evitar problemas con guiones en el nombre de archivo, puede agregar --después de cualquier opción que desee pasar al mvcomando. --indica el final de los parámetros para la mayoría de los comandos.

Algunos pensamientos adicionales:

  • Si coloca todos los archivos eliminados en el mismo directorio, no es necesario buscar, simplemente puede mvdesde /root/Dustbinla ubicación original
  • Sin embargo, si coloca todos los archivos sin renombrarlos en el mismo directorio, podría terminar sobrescribiendo los archivos en su cubo de basura
  • agregue suficiente manejo de errores en los scripts de eliminación y restauración
  • ¡no confíe en un mecanismo como este para archivos importantes! Si necesita asegurarse de que puede restaurar un archivo específico, debe asegurarse de tener una copia de seguridad adecuada disponible y de asegurarse de que puede restaurar desde él
Bram
fuente