cat não une meus arquivos quando eu corro dentro do script

0

Estou fazendo um script de backups de restauração e, quando tento juntar arquivos divididos, cat imprime esse erro:

cat: fullbackup_mrbsNuevo_15_6_2016.tar.gz.*: No such file or directory

A linha que executa o comando cat é essa:

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."\* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

Eu verifiquei se os arquivos existem e eles estão no diretório. Também tentei executar o comando no shell e funciona bem.

Eu não sei o que é ruim no meu script.

Quando eu executo o comando ls no diretório, os arquivos são:

cisco@Paquito1:/tmp/backup$ ls -lah
total 7,1M
drwxr-xr-x 2 cisco cisco 4,0K 2016-06-18 12:01 .
drwxrwxrwt 5 root  root  4,0K 2016-06-18 10:10 ..
-rw-r--r-- 1 cisco cisco 5,0M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.aa
-rw-r--r-- 1 cisco cisco 2,1M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.ab

E antes de executar o comando cat eu mudo para o diretório / tmp / backup.

Obrigado antecipadamente.

    
por Jesfer 19.06.2016 / 22:04

2 respostas

0

você não deve escapar de * , isso resultará em shell / bash procurando uma estrela litteral, não expandindo o nome do arquivo.

tente

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

editar

em uma nota lateral, gostaria de citar

cat ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz.* > ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz"
    
por 19.06.2016 / 22:31
0

Finalmente, esta foi a solução:

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

Eu não escapei do * e coloquei fora de "". Obrigado a Archemar pela sua resposta. Ele me ajuda a encontrar meu erro.

    
por 19.06.2016 / 22:56