bash - una - Cambiar el nombre del directorio antes de que suceda tar
renombrar todos los archivos de una carpeta linux (2)
Tengo un directorio, por ejemplo, /var/tmp/my-dir/
que comprimo frecuentemente con el siguiente comando:
$ cd /var/tmp/
$ tar -zcf my-dir.tar.gz my-dir/*
Más tarde, cuando descomprima my-dir.tar.gz , se creará my-dir/
en el directorio actual. Parece que el directorio my-dir
está "envuelto" dentro del tarball. ¿Existe una opción tar para cambiar my-dir
nombre de my-dir
a, por ejemplo, your-dir
antes de que se produzca el marcado real. Así que eso ...
$ tar -zxf my-dir.tar.gz
# So that ... this creates your-dir/, instead of my-dir/
Gracias.
Para mac works -s
flag.
Renombrar en comprimir:
tar -zcf my-dir.tar.gz -s /^my-dir/your-dir/ my-dir/*
Renombrar en extracto:
tar -zxf my-dir.tar.gz -s /^my-dir/your-dir/
Que tar
GNU Tar acepta un argumento --transform
, al que le da una expresión sed
para manipular nombres de archivos.
Por ejemplo, para cambiar el nombre durante el desembalaje:
tar -zxf my-dir.tar.gz --transform s/my-dir/your-dir/
BSD tar y S tar similarmente tienen un argumento -s
, tomando un simple /old/new/
(no una expresión sed
general).