Cuando hago lo siguiente:
tar czvf ../myarchive.tar.gz ./
Obtengo una sola carpeta raíz (molesta) en mi archivo tar:
¿Cómo elimino este horrible período al crear el archivo?
Cuando hago lo siguiente:
tar czvf ../myarchive.tar.gz ./
Obtengo una sola carpeta raíz (molesta) en mi archivo tar:
¿Cómo elimino este horrible período al crear el archivo?
Respuestas:
Usted no
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(Nota: esto no funciona si su shell tiene activado el seguimiento del enlace simbólico del directorio actual y se accede al directorio actual a través de un enlace simbólico).
Sí, esto no es lo que pediste, pero es lo que debes hacer. Los archivos que expanden una gran cantidad de archivos en el directorio actual son molestos: pone la carga de crear un directorio de destino para el archivo en cada persona que desempaqueta el archivo, y si accidentalmente los descomprime en un directorio no vacío, es difícil limpiar. La mayoría de las veces, un archivo debe crear un único directorio de nivel superior cuyo nombre sea el nombre base del archivo.
tar xzvf archive.tar.gz && mv archive/* /output
vs. unzip archive.zip -d /output
)
El punto aparece porque tar
crea la estructura de la ruta de la forma en que usted proporciona los argumentos. Entonces, como has dado . como fuente, el archivo también se crea en la misma estructura.
Puedes probar esto y verificar:
tar -czvf ../myarchive.tar.gz *
Actualización de la respuesta con ayuda del comentario de n.st
tar --xform s:'./':: -czvf ../myarchive.tar.gz ./
*
globo no coincidirá con los archivos ocultos.
mejor agregue ^ antes de lo anterior.
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
O bien, todo "/" en la ruta completa dentro del archivo se eliminará a menos que "/" sea el final de la ruta completa.