Este comando irá colocar os arquivos tar no diretório atual sem o primeiro ./
:
tar cf /some/tarfile.tar *
Claro, não incluirá nomes de arquivos que começam com um período, o que provavelmente não é o que você deseja. Você pode adicionar curingas adicionais para captá-los:
tar cf /some/tarfile.tar * .[a-zA-Z]*
Mas esta não é uma solução de propósito geral; você precisa saber quais nomes de arquivos estão no diretório para criar curingas apropriados.
O GNU tar - que é o que a maioria das distribuições Linux usa - tem um recurso para transformar nomes de arquivos usando expressões sed
. Isso removerá o ./
dos arquivos durante a criação do arquivo:
tar cf /some/tarfile.tar --transform 's,^\./,,' .
O arquivo resultante ainda terá uma entrada para o "." próprio diretório.
Algumas versões do tar
podem ler os nomes dos arquivos a serem tarados de um arquivo. Você pode explorar esse recurso para fazer isso:
ls -a | egrep -v '^\.\.?$' | tar cf - -T /dev/stdin
Este pipeline constrói uma lista de todos os arquivos no diretório atual, remove as entradas .
e ..
e canaliza o restante dos nomes para tar
. tar faz o arquivo de nomes de arquivos ler /dev/stdin
(sua entrada padrão).