1 votos

Convertir rutas absolutas en rutas relativas para rsync

Intento sincronizar dos carpetas, pero con excepciones hechas por etiquetas. Así que aprendí que necesito diferentes comandos para realizar ese trabajo. Primero creo un archivo de archivos excluidos, que tienen una etiqueta en naranja o rojo establecida.

Luego llamo a rsync con este archivo de salida como la lista de no-hacer. Pero el contenido del archivo es un nombre de archivo absoluto, mientras que rsync parece necesitar una ruta relativa.

Esto es lo que ya tengo (¡necesito el idioma local para los nombres!):

mdfind -onlyin . "kMDItemUserTags == 'Orange' || kMDItemUserTags == 'Rot'" > excluded.txt 

Y esto es lo que necesito que se ejecute:

rsync -avz --exclude-from "excluded.txt" source/ destination/

¿Alguna idea?

Información adicional para una mejor lectura: Ahora con "sed", obtengo:

./Gruppe/A-Teens
./Gruppe/A-Teens/A - Teens - Mama Mia.mp3
./Gruppe/A-Teens/A - Teens - Super Trouper.mp3

Desafortunadamente esto no funciona. De nuevo todo se copia. Declaraciones actuales:

cd /Users/serveruser/Desktop/fasttemp/temp/Unser/Songs

mdfind -onlyin . "kMDItemUserTags == 'Orange' || kMDItemUserTags == 'Rot'" | sed 's|/Users/serveruser/Desktop/fasttemp/temp/Unser/Songs|.|' > excluded.txt
rsync -avz --exclude-from "excluded.txt" /Users/serveruser/Desktop/fasttemp/temp/Unser/Songs/ /Users/serveruser/Desktop/fasttemp/temp/Unser/Backup/

3voto

Dado que necesitas quitar la parte inicial de la ruta, puedes usar sed para hacerla relativa.

mdfind -onlyin . "kMDItemUserTags == 'Rot'" | sed 's|/RUTA/A/ELIMINAR/||' > excluded.txt

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X