Inicio

Versión 1.0 - marzo de 2010

Aclaraciones sobre el comodín asterisco

En muchas explicaciones se simplifica mucho y se dice que el comodín asterisco significa cualquier cadena. Sin embargo significa cualquier cadena que no empiece por punto. Así se puede diferenciar entre los archivos ocultos y los normales. Veamos unos ejemplos:

Borrar

$ rm -r *

Borra recursivamente todos los ficheros y directorios excepto los ocultos.

$ rm -r .*

Borra recursivamente todos los ficheros y directorios ocultos.

Por tanto usando secuencialmente las órdenes anteriores borramos todo el contenido de un directorio.

$ rm -r *.*

Sólo borra recursivamente ficheros del tipo filename.extension, no borra ni ocultos ni directorios, así que es muy poco práctico (es una costumbre del MS-DOS, pues en él todos los ficheros tiene extensión).

Y claro, también está la opción de borrar la carpeta en vez de su contenido y así no hay problema con el comodín...

En modo gráfico, si tenemos la opción de mostrar ficheros ocultos, pues los podremos seleccionar y borrar, si no, no los borraremos.

Copiar

$ cp -r /home/pepe/origen/* /home/pepe/destino

Copia recursivamente todos los ficheros y directorios, excepto los ocultos.

$ cp -r /home/pepe/origen/.* /home/pepe/destino

Ahora surge una pequeña sorpresa, copia todo el contenido de origen (incluidos ocultos) pero también el contenido del directorio superior recursivamente (aunque no crea la carpeta origen puesto que su contenido ya lo copió). Esto es porque .* significa archivos que empiezen por punto , el directorio actual (.) y el directorio superior (..). Con el comando rm esto está desactivado para evitar borrados accidentales, prueba rm -rv .* y fíjate en la salida del comando.
Por tanto ahora no podemos hacer como antes y usar las dos órdenes secuencialmente.

$ cp -r /home/pepe/origen/*.* /home/pepe/destino

Solo copia ficheros tipo filename.extension, no copia ni ocultos ni directorios.

$ cp -r /home/pepe/origen/. /home/pepe/destino

Copia todo el contenido de origen en  destino. Incluso si destino no existe lo crea. Ahora sí que copia ocultos, no ocultos y directorios.

También podría hacerlo más fácil copiando la carpeta entera:

$ cp -r /home/pepe/origen /home/pepe/destino

pero hay veces que en destino hay un contenido que no queremos borrar y al que le queremos añadir el contenido de origen.

En modo gráfico, si tenemos puesta la opción de mostrar ficheros ocultos, pues los podremos seleccionar y copiar, si no, no los copiaremos.

Inicio

HTML5 Powered