porque o tar criando um link

0
root@linux:/mnt/TEST# ls
test1.txt  test2.txt  test3.txt
root@linux:/mnt/TEST# find /mnt/TEST/ -mmin -10 -exec  tar -czvf /tmp/test.tar.gz {} +
tar: Removing leading '/' from member names
/mnt/TEST/
/mnt/TEST/test3.txt
/mnt/TEST/test2.txt
/mnt/TEST/test1.txt
tar: Removing leading '/' from hard link targets
/mnt/TEST/test3.txt
/mnt/TEST/test2.txt
/mnt/TEST/test1.txt
root@linux:/mnt/TEST# tar -tvf /tmp/test.tar.gz 
drwxr-xr-x root/root         0 2017-10-08 00:15 mnt/TEST/
-rw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test3.txt
-rw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test2.txt
-rw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test1.txt
hrw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test3.txt link to mnt/TEST/test3.txt
hrw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test2.txt link to mnt/TEST/test2.txt
hrw-r--r-- root/root         0 2017-10-08 00:15 mnt/TEST/test1.txt link to mnt/TEST/test1.txt
    
por zim 07.10.2017 / 20:56

1 resposta

1

Você inclui os arquivos duas vezes, e o GNU tar percebe e assume que o segundo conjunto de arquivos, já que eles têm o mesmo inode do primeiro conjunto, devem ser hard links.

Você arquiva os arquivos duas vezes:

  1. Primeiro, arquivando o diretório /mnt/TEST (que preenche os critérios find ),
  2. e novamente arquivando os arquivos individuais.

Você deve modificar seu comando find para encontrar apenas arquivos regulares:

find /mnt/TEST/ -type f -mmin -10 -exec  tar -czvf /tmp/test.tar.gz {} +

Observe também que, se o comando find encontrar mais arquivos do que os que podem ser manipulados por uma única chamada de tar , ele chamará tar várias vezes, sobrescrevendo o arquivo tar toda vez.

Corrigindo isto:

find /mnt/TEST/ -type f -mmin -10 \
    -exec sh -c 'a="/tmp/test.tar.gz"; if [ -f "$a" ]; then tar -uzvf "$a" "$@"; else tar -czvf "$a" "$@"; fi' sh {} +

Isto irá anexar arquivos ao arquivo se o arquivo existir ( tar -u ), caso contrário ele irá criar o arquivo ( tar -c ).

    
por 07.10.2017 / 21:06

Tags