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).