Ir al contenido principal

Cómo copiar con cp y excluir archivos o directorios internos (equivalente a rsync –exclude)

Si yo les pidiera que mencionen un comando para copiar una carpeta hacia otro lugar, casi todos mencionarían a cp.
Ahora, si les digo que además, deben copiar todo el contenido de esa carpeta excepto 1 archivo, ahí muchos se quedarían pensando, y otros mencionarían a rsync, pues con el parámetro –exclude se puede excluir X archivo o carpeta y no copiarla. Pero… ¿sabían que cp también permite hacer esto? … O_O … sí amigos, cp tiene su propio “exclude” jeje.
Por ejemplo, tenemos la carpeta isos que contiene: ubuntu.iso, debian.iso y archlinux.iso :Y sucede que deseamos copiar hacia la otra carpeta (distros-deb, que está vacía) el archivo debian.iso y ubuntu.iso, o sea, todos menos archlinux.iso
Para ello podríamos copiar un archivo y luego otro, manualmente, pero es mucho más inteligente usar las opciones que nos brinda el sistema no? … :D … por ejemplo, para hacer esto basta con:
cp isos/!(archlinux.iso) distros-deb/
Y esto basta para que se copie TODO lo que contenga el directorio isos hacia distros-deb, todo excepto archlinux.iso ;)
Pero supongamos que no solo tenemos esos 3 archivos, sino que además tenemos fedora.iso y chakra.iso … y queremos hacer lo mismo, quedaría excluir también de la copia fedora.iso y chakra.iso, veamos cómo hacerlo:
cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/
Como pueden ver, se puede excluir varios archivos o carpetas, solo los separamos por una tubería (|) y asunto resuelto :D
Con esto no quiero decir que cp sea mejor para todo que rsync … pero, ambos son excelentes herramientas, por ejemplo … ¿conocían el parámetro -u de cp? … jeje, seguro que no ;)
Bueno, nada más que agregar … ¿a que este es un interesante tip? :D
Saludos

Entradas populares de este blog

Mensaje de bienvenida en la Consola

Es una pequeña utilidad para mostrar texto ASCII en la consola. Se llama Figlet y la podemos instalar en Ubuntu con “sudo apt-get install figlet”. Podemos hacer que aparezca un mensaje de bienvenida en la consola si añadimos estas lineas al archivo “$HOME/.bashrc”: #Mensaje figlet “Texto Que quieras $USER”

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

ISO Master, crea y modifica tus ISO’s fácilmente

<a href="http://ubuntu.com/getubuntu" title="Descarga Ubuntu"> <img src="http://www.marcelor.com/wp-content/uploads/199_164_ubuntu.png" alt="Descarga Ubuntu."/> </a> Ha sido liberada la versión 1.3.7 de ISO Master, aplicación que te permite crear y modificar archivos ISO9660 (imágenes ISO). Principales funcionalidades: Crear una imagen ISO desde el principio. Añadir o eliminar archivos y directorios en o desde una imagen de CD. Crear CDs de arranque utilizando diferentes tipos de registros de arranque: no emulación (isolinux, Microsoft Windows), 1,2, 1,44 y 2,88 de emulación de disquete. Apoyo a Rock Ridge y nombres de archivo Joliet. Iso Master es una aplicación de código abierto y está disponible en versión linux y windows. No disponible aún en los repositorios de Ubuntu http://www.littlesvr.ca/isomaster/download/