Esta serie de buenos hábitos al manejar la consola son una traducción adaptada aoriginal titulado: UNIX tips: Learn 10 good UNIX usage habits, aparecido en la parte de desarrolladores del portal de IBM.
1. Crea árboles de directorios de un sólo golpe
En vez de hacer:
~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
Podemos hacer directamente:
~ $ mkdir -p tmp/a/b/c
E incluso podemos hacer árboles definiendo más de una rama por nivel, con las llaves definimos más de un hijo por nivel:
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}2. Descomprime indicando la ruta, no muevas primero el fichero y luego lo descomprimas
Imaginad que queremos descomprimir el fichero newarc.tar.gz en el directorio tmp/a/b/c pero tenemos dicho fichero en un directorio que no es ése. La solución más típica es mover el fichero y luego descomprimirlo. Esto supone una carga extra que en el caso de ficheros muy grandes supone un problema. Con el parámetro “-C” de tar le podemos indicar la ruta de descompresión:
~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
3. Combina tus comandos con operadores de control
En una misma línea podemos utilizar más de un comando. La forma más simple de hacerlo es con el punto y coma “;”. El problema deriva cuando los comandos que ejecutas dependen el uno del otro, si el primero falla, afecta a los siguientes.
Veamos cómo solucionarlo.
Ejecuta el comando sólo si el anterior ha devuelto un cero (se ha ejecutado de forma exitosa)
Para este caso tenemos el operador &&:
~ $ cd tmp/a/b/c && tar xvf ~/archive.tar
Caso contrario
Si queremos controlar el caso en que el primer comando falle tenemos el operador :
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c
Tenemos la opción de controlar ambos casos de una vez:
~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar
4. Utiliza las comillas cuando trabajes con variables
Si utilizas variables, al asignarles valores alfanuméricos, texto; deberías utilizar siempre comillas dobles (a no ser que tengas razones para no hacerlo). También puedes poner el nombre de la variable entre llaves para asegurarte que se ejecutan bien las llamadas.
Veamos una serie de ejemplos y casos diferentes, con sus respectivas salidas:
~ $ ls tmp/
a b
~ $ VAR="tmp/*"
~ $ echo $VAR
tmp/a tmp/b
~ $ echo "$VAR"
tmp/*
~ $ echo $VARa ~ $ echo "$VARa" ~ $ echo "${VAR}a"
tmp/*a
~ $ echo ${VAR}a
tmp/a read more