Estoy tratando de crear un script que pueda comprimir archivos con una cierta extensión en varios directorios en una sola tar-ball. Actualmente lo que tengo en el archivo de script es:
find "$rootDir" -name '*doc' -exec tar rvf docs.tar {} \;
¿Dónde $rootDir
está la ruta base para buscar?
Esto está bien, excepto que las rutas son absolutas en el archivo tar. Preferiría que los caminos sean relativos $rootDir
. ¿Cómo haría para hacer esto?
Ejemplo de corriente tar -tf docs.tar
donde $rootDir
se /home/username/test
emite:
home/username/test/subdir/test.doc
home/username/test/second.doc
Lo que deseo que sea la salida:
./subdir/test.doc
./second.doc
cd $rootDir
ycd -
(al menos enbash
).( cd $rootDir ; find ... )
También sería posible, es decir, hacer todo en una subshell.Puede usar el
%P
formato en la-printf
directiva:se mostrará en su ejemplo:
Luego puede usar esta
find
lista en unafor
expresión, para ejecutar nuestro comando exec, como en:fuente