2012-07-19 21 views
59

Tengo dos directorios y uno está vacío.cp -r sin archivos ocultos

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

+0

es factible, pero la eliminación de ellos después de t La copia podría ser más simple –

+4

, sí, pero manejar los archivos ocultos a otras ubicaciones es un riesgo de seguridad en mi caso. – Rahul

Respuesta

99

Puede utilizar rsync:

rsync -av --exclude=".*" src dest 
+0

¿Hay gastos generales en comparación con cp? – Rahul

+1

@Rahul No se me ocurrió compararlo, pero creo que no debería preocuparse por eso –

+1

¡Funciona genial! ¡Gracias hombre! Solo para información, rsync sería genial cuando el tamaño del archivo es grande, pero igual a cp en caso de que los archivos más pequeños. – Rahul

12

Usted puede hacer

cp -r SRC_DIR/* DEST_DIR 

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

+1

Ese es exactamente el problema ... :) – Rahul

+6

Pero funciona para GIT-Repos, si no quiere copiar todo el índice GIT en .git/... –

1

rsync tiene la opción de "-C"

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

Ejemplo:

rsync -vazC dir1 dir2 
+0

Bueno, copia los archivos ocultos de los subdirectores ... – Rahul

+0

Tienes razón. Intenté ** mkdir -p dir1/subdir; toque dir1/subdir/.cvs; rsync -avzC dir1 dir2 ** – slitvinov

+0

rsync -av --exclude = ". *" src dest funciona muy bien. Refiera la respuesta anterior por eugene. ¡Gracias de cualquier manera! :) – Rahul

Cuestiones relacionadas