cp -r sin archivos ocultos

89

Tengo dos directorios y uno está vacío.

El primer directorio tiene muchos subdirectorios con archivos ocultos. Cuando cp -rcontenido del primer directorio al segundo, los archivos ocultos también se copian. ¿Alguna solución para escapar de ellos?

Rahul
fuente
es factible, pero eliminarlos después de la copia podría ser más simple
Karoly Horvath
6
sí, pero trasladar los archivos ocultos a otras ubicaciones es un peligro para la seguridad en mi caso.
Rahul

Respuestas:

127

Puedes usar rsync:

rsync -av --exclude=".*" src dest
Eugene Yarmash
fuente
1
¿Algún gasto general en comparación con cp?
Rahul
2
@Rahul No se me ocurrió compararlo, pero creo que no debería preocuparse por eso
Eugene Yarmash
3
¡Funciona genial! ¡Gracias hombre! Solo como información, rsync sería genial cuando el tamaño del archivo es grande, pero igual a cp en el caso de los archivos más pequeños.
Rahul
26

Tu puedes hacer

cp -r SRC_DIR/* DEST_DIR

para excluir todos los archivos .files y .dirs en el nivel SRC_DIR, pero aún así copiaría los archivos ocultos en el siguiente nivel de subdirectorios.

Tuxdude
fuente
6
Ese es exactamente el problema .. :)
Rahul
9
Pero funciona para GIT-Repos, si no desea copiar el índice GIT completo en .git / ...
Sedat Kilinc
1
Recibí esta respuesta porque esta es la solución que estaba buscando. No quiero excluir a todos los invisibles del árbol, ¡solo a los invisibles en el nivel de la raíz!
l008com
Otra variante cp SOURCE/[!.]* TARGET.
Carel
4

rsync tiene la opción "-C"

http://rsync.samba.org/ftp/rsync/rsync.html

Ejemplo:

rsync -vazC  dir1 dir2
Slitvinov
fuente
Tienes razón. Probé mkdir -p dir1 / subdirectorio; toque dir1 / subdir / .cvs; rsync -avzC dir1 dir2
slitvinov
rsync -av --exclude = ". *" src dest funciona muy bien. Consulte la respuesta anterior de eugene. ¡Gracias de cualquier manera! :)
Rahul