Inicio

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 sorcodesa, copia todo el contenido de origen (incluidos ocultos) pero también el contenido del directorio superior (pepe). Este comportamiento extraño es porque le hemos puesto la opción -r y el punto también significa el directorio actual, luego ha entendido que tiene que subir recursivamente hacia arriba (aunque por suerte se para en el primer nivel).

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

Valid XHTML 1.0 Strict