Otro título sugerido: como hacer que los nombres de archivo y directorio de Windows sean compatibles con Linux con un único comando.

 

Va otro mini-micro-nano TIP para mi cada vez mas pequeña audiencia como así también para cuando en el futuro tenga que recurrir nuevamente al comando este y no me acuerde como se usa:

Detox: el único y último programa que vas a necesitar para reemplazar espacios por guiones bajos, vocales con tilde por vocales limpias, eliminar parentesis y un largo etcétera, pasando desde cualquier char que no sea UTF-8 compatible y rompa o te obligue a salvar la línea de comandos de linux con una contrabarra a un archivo con nombre limpio que luego podés parsear sin inconvenientes.

Como bien dice la descripción del comando en el manual:

DESCRIPTION
The detox utility renames files to make them easier to work with. It removes spaces and other such annoyances. It’ll also translate or cleanup Latin-1 (ISO 8859-1) characters encoded in 8-bit ASCII, Unicode characters encoded in UTF-8, and CGI escaped characters.

O la salida del comando si lo ejecutás sin parámetros adicionales:

usage: detox [-hLnrvV] [-f configfile] [-s sequence] [--dry-run] [--special]
file [file ...]

 

detox - corregir recursivamente o en masa nombres de archivo eliminando espacios y otros caracteres molestos para hacerlos compatibles con Linux

detox – corregir recursivamente o en masa nombres de archivo eliminando espacios y otros caracteres molestos para hacerlos compatibles con Linux

 

Como se usa:

Continúa leyendo

 

Cheatsheet: como convertirte en el seasoned sysadmin que siempre soñaste.

 

Ese, el que gana poco trabajando para una multinacional de medio pelo para arriba y únicamente produce vitamina D cuando la luz de su display le pega en la palma de las manos. Ese que nunca una mujer podría encontrar atractivo y que prefiere un servidor a un partido de fútbol.

Como convertirte en ese sysadmin al que los demás sysadmincitos junior miran desde abajo. Ese veterano de mil guerras con el rostro desfigurado por cicatrices, ese Rambo del Bash que te hace indestructible ahora, pero que cuando te jubiles te habrá dejado el cerebro a la miseria. Ese que no necesita recurrir nunca a stackoverflow por que se sabe el comando de memoria.

 

Ese.

 

La que sigue es únicamente una lista orientativa. Es esperable que todo aquel que busque iniciarse en el milenario y mal apreciado arte del sysadmineo linuxero de mierda se las apañe solo y no venga a este post a preguntar pelotudeces. Es decir: si querés ver hasta donde te la bancás, que tan grande la tenés, que tanto más que tus pares sabés o que tan mejor sos tomá, seguí esta lista al pié de la letra. No avances al paso siguiente hasta no haber completado el inmediato anterior por que es una guía que se sigue de forma secuencial.
Cuando hayas terminado, el sysadmineo será tu Kung Fu y podrás salir airoso de prácticamente cualquier situación en la que te encuentres indistintamente el grado de dificultad. Si te la bancás, seguí leyendo.

 

Perdón que vuelva a usar esta imagen en otro post pero me gusta mucho.

Algo así vas a poder hacer cuando termines de seguir mi guía de 20 sencillos pasos.

Continúa leyendo

A este le puse por título TIP por que no es mas que eso: otro ayuda memoria para la posteridad, a saber:

 

  • Tenés dos archivos con texto: archivo1 y archivo2 como en el ejemplo de la captura de pantalla.
  • Necesitás identificar las líneas duplicadas o simplemente restarlas como en el ejemplo y mostrar únicamente las que no se repiten.

 

La única forma que conozco de lograr esto en Bash sin recurrir a complicados regex de la muerte forma mas rápida de lograr esto sin tener que pensar mucho es como tantas otras veces: GREP.  Alguien debería hacerle un pedestal al autor original de grep, sin duda.

Los switchs que vas a utilizar en grep son:

  1. -x  match únicamente si toda la línea coincide.
  2. -f  para en lugar de utilizar stdin o una palabra como argumento, usar un archivo, de a una línea por vez.
  3. -v  para reverse search, restar las líneas que coincidan en archivo2 de archivo1.

 

Utilizar grep en Bash para restar el contenido de un archivo de otro linea a linea en la consola de comando de Linux

Utilizar grep en Bash para restar el contenido de un archivo de otro linea a linea en la consola de comando de Linux

 

Continúa leyendo

 

Otro título sugerido: La lógica detrás del include/exclude de RSYNC, que no es tan obvia.

Otro: Rsync, la puta que te parió rsync.

 

De lo fácil o difícil que puede resultar hacer un backup con Linux, dependiendo de como lo mires.

De lo fácil o difícil que puede resultar hacer un backup con Linux, dependiendo de como lo mires.

 

Vá uno cortito y útil. No tan obvio y medio complejo de encontrar en la primera página de Google a menos que seas hábil Googleador, pero después te comés un garrón de la gran flauta: Como ejecutar Rsync para copiar archivos, pero únicamente determinados tipos de archivo, basando la selección en la extensión que tuvieran. Parece fácil, si.

Para el versado seasoned sysadmin Linuxero está será bastante obvia, no obstante, hoy la tuve que usar de nuevo por vez número mil y no me anduvo a la primera. No me acrodaba específicamente la sintaxis y terminé Googleando. Como siempre que me pasa esto me lo agendo para la posteridad, acá estoy de nuevo, y así se hace:

 

rsync -av --dry-run --include '*/' --include '*.php' --exclude '*' source/dir/ target/dir/

 

¿Bastante obvio, no? El de arriba va con un –dry-run para que puedas examinar la salida del comando. Si te resultó satisfactorio y no te mandaste ninguna cagada, sacale el –dry-run para que los archivos se copien efectivamente y si te molesta el output por pantalla, sacale la “v” de verbosity, quedando:

 

rsync -a --include '*/' --include '*.php' --exclude '*' source/dir/ target/dir/

 

¿Te sirvió? Pagame un café.