es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Solo se recuperan archivos LaTeX con git fsck.

Accidentalmente eliminé un gran número de archivos LaTeX usando git stash en lugar de git stash -u. He recuperado varios de ellos siguiendo las instrucciones aquí utilizando el siguiente comando:

git fsck --full --no-reflogs --unreachable --lost-found | grep blob | cut -d\  -f3 | while read in; do printf "blob: $in\n"; git cat-file -p $in; printf "\n--------------------------------\n"; done > recover.txt

El problema es que esto incluye una gran cantidad de basura como archivos de registro. Me gustaría modificar este comando para que solo recupere archivos que incluyan las palabras “\begin{document}” dentro de ellos. Parece que esto debería ser fácilmente factible modificando el paso de grep en el código anterior, pero no entiendo lo suficiente el código copiado como para hacerlo por mí mismo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para modificar el paso grep en el comando para recuperar solo archivos que incluyan las palabras “\begin{document}” dentro de ellos, podemos usar la bandera -I para asegurarnos de que no se busquen archivos binarios, y agregar la cadena "\begin{document}" como el patrón a buscar. El comando modificado sería:

    git fsck --full --no-reflogs --unreachable --lost-found | grep -I -e "\begin\{document\}" -e blob | cut -d' ' -f3 | while read in; do printf "blob: $in\n"; git cat-file -p $in; printf "\n--------------------------------\n"; done > recover.txt
    

    Aquí, la bandera -I le indica a grep que no busque en archivos binarios, y la bandera -e nos permite especificar múltiples patrones a buscar. Incluimos tanto la cadena “\begin{document}” como la palabra clave “blob”, para que aún podamos ver los IDs de blob de los archivos recuperados.

    Es importante tener en cuenta que necesitamos escapar las llaves curvas en la cadena “\begin{document}” con barras invertidas, ya que las llaves curvas tienen significados especiales en expresiones regulares.

    Con este comando modificado, el paso de grep solo devolverá archivos que incluyan la cadena “\begin{document}”, y el archivo resultante recover.txt solo contendrá los archivos LaTeX recuperados que cumplan con este criterio.

Comments are closed.