2009-03-30 84 views
5

Quiero hacer una copia de seguridad de todos los archivos y directorios ocultos en mi directorio de inicio usando rsync, pero no los archivos y directorios no ocultos.Use rsync para copiar solo los archivos ocultos

Por ejemplo, dada esta lista de directorios:

drwxr-xr-x 7 sophie sophie 238 31 Mar 08:45 . 
drwxr-xr-x 15 sophie sophie 510 31 Mar 08:14 .. 
-rw-r--r-- 1 sophie sophie 4 31 Mar 08:12 .foo 
drwxr-xr-x 3 sophie sophie 102 31 Mar 08:45 .hiddendir 
drwxr-xr-x 4 sophie sophie 136 31 Mar 08:13 VisibleDirectory 
-rw-r--r-- 1 sophie sophie 9 31 Mar 08:13 VisibleFile 

Quiero una copia de seguridad .foo, .hiddendir, y todos los contenidos de .hiddendir si están ocultos o no. No quiero hacer una copia de seguridad de VisibleDirectory o VisibleFile.

Todos los conjuros que he encontrado respaldan "." Y, por lo tanto, todos sus contenidos, incluidos VisibleFile y VisibleDirectory, y no puedo encontrar la manera de excluirlo. ¡Por favor ayuda!

Estoy utilizando Mac OS X 10.5.6 (Leopard) y la versión de rsync versión 2.6.9 Protocolo 29.

Respuesta

6

Un patrón común para que coincida con los elementos ocultos es .[^.]*

rsync -a ~/.[^.]* /path/to/backup 

Esto copia todos los archivos comenzando con un solo punto Tenga en cuenta que no incluye archivos que comiencen con más de un punto.

+0

Muy útil. También puedo usar 'rsync -a source /[^.]* dest /' para sincronizar todos los archivos no ocultos, excluyendo entradas como '.git'. –

0

¿Ha intentado encarnaciones como ./.*?

¿Podría copiar los archivos ocultos a un directorio temporal, hacer una copia de seguridad del directorio temporal y luego eliminarlo?

10

Por lo general, ". ?? *" para asegurarse de no copiar "." y ".."

(¿Y si tuviera un archivo que era sólo ".a"?)

+0

Esto es correcto. $ rsync -a ~ /.??*/path/to/backup – ashawley

+0

Genius. ¡Gracias! –

Cuestiones relacionadas