Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Cómo evitar eliminar por error un archivo con el comando rm en Linux

Veamos como evitar eliminar un archivo por error mediante el comando rm desde la terminal en GNU/Linux

Estamos trabajando en una terminal de nuestro sistema GNU/Linux y estando seguros de lo que hacemos, con los dedos planeando el teclado a toda velocidad, sin querer eliminamos un archivo con el comando rm que no queríamos borrar…

Nuestros dedos se detienen en el acto y asumimos lo ocurrido con una mezcla de pánico, tensión y culpabilidad… ¿podemos recuperar ese archivo?

La respuesta corta es: no. O por lo menos no, con las herramientas habituales de nuestro sistema.

La respuesta larga es sí: podremos utilizar herramientas disponibles para recuperar ese archivo.

La respuesta para el futuro es: vamos a ver algunas soluciones para impedir este sufrimiento en el futuro.

Si no ha pasado mucho tiempo desde que lo hemos eliminado hasta que nos hemos dado cuenta del error, quizás el sistema no haya sobre escrito nada en el lugar que ocupaba ese archivo y quizás haya una posibilidad de recuperación.

Hay herramientas forenses para la exploración del sistema de archivos y para tratar de recuperar aquello que deseamos. Y otras herramientas con interfaz gráfica para estas lides, así la que conozco y he utilizado alguna vez fue PhotoRec.

Pero este artículo no trata tanto sobre cómo recuperar un archivo que hemos borrado con el comando rm de GNU/Linux, si no más bien de cómo impedir que nos suceda en el futuro.

rm interactivo

Una opción para impedir eliminar archivos no deseados es utilizar la versión interactiva del comando rm (-i) En la versión interactiva del comando, este nos preguntará si deseamos borrar el archivo. Para ello añadiremos el siguiente alias, en el archivo de configuración de nuestra shell (.bashrc, .zshrc o la que utilicemos)

alias rm="rm -i"

Es decir, nos da una oportunidad antes de borrar el archivo por completo. No impide el error, pero sí hace que quizás antes del “desastre” nos llegue un rayo de iluminación y seamos conscientes de nuestro incipiente error, pudiendo decir a rm que no borre el archivo que le habíamos mandado.

Muy bien, esto parece ser una solución interesante si queremos borrar 1 o 3 o 5 o incluso 10 archivos. Nos pedirá 1, 3, 5 o 10 confirmaciones, algo manejable… pero ¿qué pasa si queremos borrar 100 archivos, y es algo habitual en nuestro flujo de trabajo?

Es algo exasperante tener que confirmar 100 eliminaciones de archivos, al final, dejaremos de prestar atención a los archivos que nos presenta y quizás borremos alguno que no queríamos.

Utilizar una “papelera de reciclaje”

Cuando utilizamos un gestor de archivos con interfaz gráfica como Dolphin, Thunar, etc, estamos acostumbrados a que al borrar un archivo, este pasa a una papelera antes de ser eliminado por completo.

Podemos echar un vistazo a esa papelera y volver a recuperar los archivos que queramos porque los hayamos borrado por error. ¿Por qué no tener algo así en la consola? Veamos cómo tener algo similar.

Lo primero, vamos a crear una carpeta oculta en nuestro /home. Ya sabéis que anteponiendo un punto (.) a un nombre de archivo o carpeta, en sistemas GNU/Linux esto hace que sea oculto. Para ello ejecutaremos:

$ mkdir ~/.Papelera

Esto nos creará la carpeta oculta llamada Papelera en nuestro /home. Podemos ver que existe con el comando ls -a Y veremos no solo nuestra carpeta recién creada, si no también los archivos ocultos en nuestro /home.

Después tendremos que crear un alias (ya sabes en .bashrc, zshrc o el que utilices) para el comando rm que a partir de ahora utilizaremos como del (viene de delete, pero puedes llamarle como prefieras). En ese archivo añadiremos la siguiente línea:

alias del='mv --verbose --backup=simple --suffix=$(date +".(%F_%T)") --target-directory=$HOME/.Papelera/'

Ahora cuando queramos eliminar un archivo lo haremos con del, en vez de con rm. Con esto no se borrarán los archivos, simplemente se moverán a la carpeta oculta Papelera y podremos recuperar los archivos en caso de error.

Si borramos archivos que tienen el mismo nombre, este alias irá añadiendo fecha y hora al nombre para diferenciar uno de otro.

De vez en cuando tendremos que ir borrando el contenido de la carpeta .Papelera, para que no empiece a ocupar mucho sitio e nuestro sistema, albergando todos los archivos que vayamos eliminando.

Quizás una tarea cron o similar pueda servirnos para ir vaciando esa carpeta de manera regular (quizás una vez al mes o similar…)


¿Qué te han parecido estas soluciones alternativas para evitar errores? ¿Te ha pasado alguna vez eso de borrar un archivo que no deberías? ¿Conoces o utilizas otros métodos/herramientas? Compártelo en los comentarios para ayudar a otras personas.

Fuente del artículo:

the avatar of YaST Team

Digest of YaST Development Sprints 129 & 130

For some people, vacation season is just the right time for housekeeping or for learning new skills. And that’s exactly what the YaST team has been doing in the latest two sprints.

  • We improved some YaST internals including:
    • Management of the Help button in text mode
    • Unmounting of file-systems at the end of installation
    • Handling of progress bars
  • Our users also made YaST better with their contributions
  • The dedicated subset of the YaST Team keeps making progress regarding the Release Tools

Let’s go into the details.

Keeping the YaST Internals in Shape

In the software development world is not uncommon to sweep the dirt under the carpet. If something seems to work from the user point of view, just leave it as it is. But there is no carpet to hide anything when you develop Free Software with an open spirit. And in the YaST Team we simply don’t feel comfortable when we know the pieces under the hood are not really well adjusted. Thus, we invested some of our summer time fixing some internal issues (both real and potential), although none of them currently have visible impact of our users.

  • All YaST screens contain a Help button that shows an explanatory text. But, what happens if there is no such text? It’s a theoretical problem (there is ALWAYS a help text) but the situation in the ncurses text mode really needed a better handling.
  • Unmounting file-systems at the end of the installation process is another of those things that seem to work flawlessly… until you take a look to the YaST logs and find out it used to be an slightly convulted process. But we restructured the component taking care of the process and things now look equally good in the surface and under the hood.
  • The way progress bars are handled in YaST is admitedly error-prone and could result in the user interface crashing in some extreme situations. We also improved that by making the Yast::Progress internal module more robust.

Integrating Community Contributions

Another of the great things of working in an Open Source project is getting contributions from your own users. In that regard, we recently added support for the AFNOR variant of the French keyboard, which was useful to realize we haven’t incorporated such layout to SUSE Linux Enterprise. We did now, so both SLE and openSUSE got better thanks to the openSUSE community. Something that will soon happen also to the YaST Journal module as soon as we merge this other contribution currently under review.

Release Tools: We Keep Learning

And talking about collaboration, in our previous post we told you about our new mission of helping with the development and maintenance of the (open)SUSE Release Tools. We keep working on that front, although progress can only be slow when most of the people we have to interact with (and a big part of the YaST Team itself) is on vacation. Nevertheless, we keep researching possible solutions for the known problems, improving the testing infrastructure and using a test-driven approach to lower the entry barrier for newcomers.

See you soon

The vacation season in Europe is comming to an end, so we hope to have more exciting news for upcoming blog posts. Meanwhile, please keep helping us and having a lot of fun!

the avatar of Nathan Wolf
a silhouette of a person's head and shoulders, used as a default avatar

Securing the sudo to sudo_logsrvd connection

Securing the sudo to sudo_logsrvd connection

Using sudo_logsrvd to centrally collect sudo session recordings from your network is a huge step forward in security: users cannot delete or modify session recordings locally. However, by default, transmission of recordings is not encrypted, making it open to modifications and eavesdropping. Encrypting the connection between sudo and sudo_logsrvd can eliminate these problems. Larger environments usually either have in-house PKI tooling in place, or colleagues who know all openssl options off the top of their heads. However, small and medium enterprises often lack the infrastructure or knowledge to work with TLS certificates.

This blog can help you to secure connections between sudo and sudo_logsrvd when there is no PKI tooling available to you, or you want to create all the certificates yourself using openssl. It is based on the sudo_logsrvd manual, but changed in such a way that all information is entered on the command line. While interactive certificate generation works fine for a single cert, generating multiple client certificates is easier when everything is on the command line.

Read my blog at https://blog.sudo.ws/posts/2021/08/securing-the-sudo-to-sudo_logsrvd-connection/

a silhouette of a person's head and shoulders, used as a default avatar

Cómo borrar en #Linux una archivo que comienza con dos guiones desde la consola

Veamos cómo borrar en GNU/Linux un archivo en el que el nombre comienza con dos guiones (por ejemplo –help) desde una consola

Nunca se me había ocurrido, pero puede ocurrir, que estemos en nuestro sistema GNU/Linux en una terminal y queramos borrar (o cambiar de nombre) un archivo que tiene por nombre –help

Ejecuta:

$ echo "hola mundo" > --help

Ya tienes tu archivo precedido con dos guiones. Prueba ahora a borrarlo, cambiarle el nombre o simplemente ver qué contiene con cat, vim, nano o como quieras y verás qué sucede.

Los comandos para hacer eso, seguro que los conoces. Para borrar utilizaremos el comando rm y para cambiar de nombre usaremos el comando mv

$ rm archivo.txt
$ mv archivo.txt archivo.md

Pero como también sabes, cada comando tiene unas opciones que se anteponen con un guión (-) para los formatos cortos y dos guiones (–) para formatos largos.

Ahora imaginemos que queremos borrar un archivo que precisamente comienza su nombre con dos guiones (–) y que para más intríngulis se llama –help

Al ejecutar los comandos, estos de forma predeterminada entienden lo siguiente como una opción no como el nombre del archivo, debido a los dos guiones con los que comienza el texto.

Si tenemos acceso a una interfaz gráfica, lo más sencillo sería abrir nuestro gestor de archivos y eliminarlo sin más o cambiarle el nombre, pero ¿qué pasa si solo tenemos una terminal?

Como dice el mantra: “If there’s a shell, there’s a way”. Qué más o menos traducido significa, que una terminal nos sacará de todos los apuros (o así…)

Tanto si el nombre comienza con uno o dos guiones, si queremos borrarlo, cambiarle el nombre, o cualquier otra cosa que queramos hacer con él, lo podremos hacer con varias opciones:

  • anteponiendo al nombre ./
  • anteponiendo al nombre —
  • declarando la ruta completa del archivo

Y con cualquiera de esas opciones conseguiremos nuestro propósito. Veamos ejemplos con nuestro ejemplo de archivo llamado –help que está en nuestro /home

Podremos ver el contenido de ese archivo con cualquiera de estas opciones, como hemos visto antes:

$ cat ./--help
$ cat -- --help
$ cat /home/tu_usuario/--help

Y de igual manera si queremos eliminarlo:

$ rm ./--help
$ rm -- --help
$ rm /home/tu_usuario/--help

Ahora sí que dominamos un poco más la terminal de nuestra distribución GNU/Linux. Y podremos proponer un pequeño reto a alguien que esté aprendiendo.

Fuente del artículo:

a silhouette of a person's head and shoulders, used as a default avatar

Veloren, un juego rpg combinación de Zelda y Minecraft

Hoy quiero compartir con vosotros esta faceta mía que me fascina y que le dedico mucho menos tiempo del que me gustaría. Y es que un juego me puede durar meses. Os presento Veloren, un juego rpg combinación de Zelda y Minecraft nativo para sistemas GNU/Linux que tiene un aspecto fabuloso.

Veloren, un juego rpg combinación de Zelda y Minecraft

Me enteré de este la existencia de Veloren en el programa de «Steam Deck y novedades en los videojuegos libres» de Mancomún Podcast donde Leillo, del portal y comunidad JugandoEnLinux, nos lo presentó.

Leillo nos lo puso tan bien que rápidamente me dediqué a buscarlo y lo que he vi me sorprendió. Antes de empezar a definir el juego, os dejo un vídeo demostrativo de su apartado visual, el cual me ha dejado, sincereamente, con la boca abierta.

Pero si el apartado gráfico os ha dejado sorprendidos por su profesonalidad, las características técnicas de Veloren no se quedan atrás. Y es que Veloren es un RPG voxel multijugador escrito en Rust, inspirado en juegos como Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress y Minecraft.

Veloren es completamente de código abierto, con licencia GPL 3. Utiliza gráficos, música y otros recursos originales creados por su comunidad. Al ser impulsado por los colaboradores, su comunidad de desarrollo y de usuarios es una misma: desarrolladores, jugadores, artistas y músicos se unen para hacer evolucionar el juego.

Veloren, un juego rpg combinación de Zelda y Minecraft

El desarrollo de Veloren comenzó a mediados de 2018, y en la actualidad hHay unos 20 desarrolladores activos trabajando en el juego, con otros 20 artistas, escritores, diseñadores y compositores que también contribuyen. Más de 150 personas han contribuido al proyecto de forma ocasional.

Veloren tiene actualmente versiones para Windows, Linux y MacOS y su actualización es continua, lo que se demuestra en sus más de 130 entradas de notas de desarrollo que llevan ya publicadas.

Más información: Jugando en Linux

the avatar of Innovators for openSUSE

GNA compatibility with openSUSE

gna.

While focused on the openSUSE Innovator initiative as an openSUSE member and official Intel oneAPI innovator, I tested the Beast Canyon NUC 11 machine on openSUSE Leap 15.3 and Tumbleweed; With all the work, we made available in the SDB an article on how to use the GNA Technologie on the openSUSE platform. More information can be found at https://en.opensuse.org/SDB:Install_GNA_in_NUC_Beast_Canyon.

Beast Canyon (still on pre-order) is the highest-performing Intel® NUC available today. Beast Canyon is the evolution of Intel’s modular gaming mini PC, a more compact gaming PC than most gamers could dream of building on their own. The equipment in some models has the Core i9-11900KB processor with the GNA feature: Gaussian & Neural Accelerator Library.

Intel® Gaussian & Neural Accelerator is a low-power neural coprocessor for continuous inference at the edge. For more information, visit : https://github.com/intel/gna

a silhouette of a person's head and shoulders, used as a default avatar

Menu 11 – Plasmoides de KDE (183)

Y ya estamos con otro lanzador de aplicaciones en Plasma, tendencia que al parecer ha revitalizado el nuevo menú de Windows 11. Como he dicho en varias entradas, buscar y ejecutar los programas en el entorno de trabajo Plasma de la Comunidad KDE es altamente personalizable. Hoy os presento Menu 11, un lanzador de aplicaciones con el que llegamos a 183 los plasmoides presentados en el blog

Menu 11 – Plasmoides de KDE (183)

Seguimos con las posibilidades de personalización de Plasma 5 en cuanto a lanzadores de aplicaciones. Al nuevo lanzador que nos vino con Plasma 5.21, a su versión clásica que podéis encontrar en la KDE Store, y a la infinidad de alternativas que tenemos UMenu, Minimal Menu, Simple Menu, Ditto Menu, Popup Launcher o NMenu) se unen modificaciones sobre los mismos.

Hoy toca presenta otro llamado Menu 11, que siguiendo la estela de OnzeMenu, destaca por su similutud con el nuevo menu de Window 11 (de ahí su nombre), su zona de favoritos y su distribución que lo hace ideal para aquellos configuraciones donde el lanzador está en la zona central del escritorio.

Se trata de una creación de una creación de prateeksu y está basado en Menu Z, se trata de un proyecto muy vivo como se demuestra al ver que ya está por su tercera versión.

Y como siempre digo, si os gusta el plasmoide podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

¿Qué son los plasmoides?

Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.

En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.

the avatar of Nathan Wolf

Noodlings 32 | Settling In

Here is the 32nd grab-and-go sized podcast episode This is the first recording in the new studio on new hardware. There are some slight audio issues but if I went for perfection… I would have just deleted this recording I would have stopped these long ago Wayland Display Server on openSUSE Tumbleweed in 2021 elementary […]

a silhouette of a person's head and shoulders, used as a default avatar

#openSUSE Tumbleweed revisión de la semana 34 de 2021

Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios esta semana.

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:

Desde la anterior revisión se han publicado un total de 4 nuevas snapshots: 0820, 0823, 0824 y 0825.

Los cambios mas notables a destacar son:

  • Mesa 21.2.0
  • Mozilla Firefox 91.0.1 & Thunderbird 91.0.1
  • Linux kernel 5.13.12
  • Node.JS 16.6.2
  • Python 3.8.11
  • Poppler 21.08.0
  • gcc 11.2.1
  • La mayoría de los paquetes de GNOME 40.4

Las próximas actualizaciones serán entre otras:

  • glibc 2.34
  • openssl 1.1.1l
  • rpmlint 2.1
  • meson 0.59.1
  • openssl 3
  • Linux kernel 5.13.13
  • systemd 249.2

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés

Geeko_ascii

——————————–