Cambié el nombre de algunos archivos en un script por lotes. ¿Hay alguna forma de deshacer los cambios sin tener que cambiarles el nombre?
¿Linux proporciona alguna forma nativa de undo
ing?
command-line
Lazer
fuente
fuente
Respuestas:
Linux (como otros unices) no proporciona de forma nativa una función de deshacer. La filosofía es que si se fue, se fue. Si era importante, debería haber sido respaldado.
Hay un sistema de archivos de fusibles que guarda automáticamente copias de versiones antiguas: copyfs , disponibles en todas las distribuciones buenas. Por supuesto, eso puede usar muchos recursos.
La mejor manera de protegerse contra tales accidentes es usar un sistema de control de versiones (cvs, bazar, darcs, git, mercurial, subversion, ...). Toma un poco de tiempo aprender, pero vale la pena a mediano y largo plazo.
fuente
Lamentablemente no.
fuente
-i
opciónrm
activada por defecto. Mis sistemas Unix no deberían tomar mi mano.No, no hay un deshacer mágico en ningún Unix. Unix asume que sabes lo que estás haciendo. Para deshacer el soporte, use un VCS (su editor de texto probablemente también lo tenga incorporado)
La mayoría de los sistemas de archivos no tienen la capacidad de hacerlo de manera transparente.
Time Machine y la restauración del sistema en Mac y Windows respectivamente son solo sistemas de copia de seguridad / control de cambios.
fuente
No hay deshacer en la línea de comando. Sin embargo, puede ejecutar comandos como
rm -i
ymv -i
. Esto te indicará con un "¿estás seguro?" pregunta antes de que ejecuten el comando.También es posible agregar un alias a un script de inicio (por ejemplo,
~/.bashrc
o/etc/bash.bashrc
):Editar: según las sugerencias a continuación, eliminé mi consejo para alias los comandos predeterminados. En cambio, ahora introduce nuevos comandos).
fuente
mv -i
solo pregunta cuándo sobrescribiría un archivo (lo que lo hace útil y no desagradable). En la misma línea,alias cp='cp -i'
.La razón por la que los sistemas Linux / Unix no tienen una recuperación se debe a la forma en que la mayoría de los sistemas de archivos almacenan su información. La metainformación del archivo se almacena en la parte frontal del disco con referencias a inodes en el resto del disco. Por lo general, la mayoría de los sistemas de archivos asignan 10 bloques a un archivo en esta metaárea. Los primeros 7 se refieren a los primeros 7 inodes. El octavo y noveno van a listas de inodos (bloques doblemente vinculados) y el décimo va a una lista de listas de listas (bloques triplicados). Esto varía de un sistema de archivos a otro (ext4, jfs, xfs, etc.), pero estas listas de bloques generalmente pueden abordar tamaños de archivo de 2GB a varios TB.
Pero debido a que toda esta información se almacena en la parte frontal del disco, cuando se borra un archivo, no hay forma de hacer referencia a los inodos en el disco a qué metadatos pertenecen. En contraste, FAT32 y NTFS realmente almacenan cierta información de encabezado con los archivos mismos, lo que facilita identificar a qué archivo pertenece un conjunto de bloques (siempre y cuando ese espacio no haya sido reclamado por los archivos más nuevos todavía). En el trabajo de Linux, cuando elimina algo, casi siempre es lo primero que se sobrescribe de inmediato con nuevos datos para mayor eficiencia.
fuente
Si realmente desea una función de deshacer, use el control de origen. Subversion realmente funciona muy bien en una sola máquina de usuario. Lo uso para controlar todos mis archivos personales en mi sistema doméstico. Parece una exageración, hasta el desastre, un script falso o un error tipográfico en la línea de comando.
fuente
rm -r .
embargo , no te protegerá . ;)rm -r project.git
. Afortunadamente si mantiene otra versión en un servidor remoto que es poco probable que sucedarm -r .
. Realmente estúpido de mi parte.Una cosa que me gusta agregar a mi .bashrc es una función de copiar y quitar. Algo como:
Pero debe acostumbrarse a escribir cprm, no rm.
Obviamente, deberá mantenerse al tanto del área eliminada si tiene un espacio en disco limitado.
fuente
"$1"
.GitFS es un sistema de archivos basado en fusibles, que calcula automáticamente
diff
s entre versiones y permite restaurar / navegar a través de ellas.Página web: https://www.presslabs.com/gitfs
Documentos: https://www.presslabs.com/gitfs/docs/usage/
fuente