Saltar al contenido

comando cp para excluir ciertos archivos de la copia

Solución:

Usar rsync:

rsync -avr --exclude="path1/to/exclude" --exclude="path2/to/exclude" source destination

Tenga en cuenta que el uso de source y source/ son diferentes. Una barra diagonal significa copiar el contenido de la carpeta. source dentro destination. Sin la barra al final, significa copiar el origen de la carpeta en destination.

Alternativamente, si tiene muchos directorios (o archivos) para excluir, puede usar --exclude-from=FILE, dónde FILE es el nombre de un archivo que contiene archivos o directorios para excluir.

--exclude también puede contener comodines, como --exclude=*/.svn*

Copiado de: https://stackoverflow.com/a/2194500/749232

Si quieres usar cp sí mismo:

find . -type f -not -iname '*/not-from-here/*' -exec cp '{}' '/dest/{}' ';'

Esto supone que la estructura del directorio de destino es la misma que la de la fuente.

Copiado de: https://stackoverflow.com/a/4586025/749232

Al final del juego, pero aquí hay una solución muy diferente que usa bash simple y cp: puede usar una especificación de archivo global mientras se ignoran algunos archivos.

Suponga que el directorio contiene los archivos:

$ ls *
listed1  listed2  listed3  listed4  unlisted1  unlisted2  unlisted3

Usando la variable GLOBIGNORE:

$ export GLOBIGNORE='unlisted*'
$ ls *
listed1  listed2  listed3  listed4

O con exclusiones más específicas:

$ export GLOBIGNORE='unlisted1:unlisted2'
$ ls *
listed1  listed2  listed3  listed4  unlisted3

O usando coincidencias negativas:

$ ls !(unlisted*)
listed1  listed2  listed3  listed4

Esto también admite varios patrones incomparables:

$ ls !(unlisted1|unlisted2)
listed1  listed2  listed3  listed4  unlisted3
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *