como encontrar o tamanho do arquivo para arquivos com link

0

Eu tenho um log de arquivos que está em um NFS, e eles estão conectados via softlinks no servidor redhat local.

Quando tento executar a pesquisa de arquivos que foram tocados durante o último fim de semana e calcular o tamanho total deles, descobri que os resultados estão errados.

find . -mtime +3 -a -mtime -5 -ls

Isso me dá os nomes, caminhos, tamanho, gid, uid, etc dos arquivos que foram tocados no último final de semana. Isso é ótimo.

O problema vem com os softlinks. está apenas relatando os tamanhos dos links em si, não o arquivo ao qual está vinculando. Portanto, o link pode ter apenas 102 bytes, enquanto o arquivo real é 24G. Também parece ser dupla contagem em algum lugar porque está me dizendo que eu tenho 23TB de arquivos quando o tamanho total de armazenamento é 11TB.

Existe uma maneira de contornar isso?

Obrigado

    
por D.Zou 25.11.2015 / 23:41

2 respostas

1

Use o sinalizador -L para seguir os links simbólicos.

Follow symbolic links. When find examines or prints information about files, the information used shall be taken from the properties of the file to which the link points, not from the link itself (unless it is a broken symbolic link or find is unable to examine the file to which the link points). Use of this option implies -noleaf. If you later use the -P option, -noleaf will still be in effect. If -L is in effect and find discovers a symbolic link to a subdirectory during its search, the subdirectory pointed to by the symbolic link will be searched.

When the -L option is in effect, the -type predicate will always match against the type of the file that a symbolic link points to rather than the link itself (unless the symbolic link is broken). Using -L causes the -lname and -ilname predicates always to return false.

    
por 25.11.2015 / 23:49
0

readlink -f irá lhe mostrar o alvo de um link simbólico; você pode usar stat na saída de reddlink para obter dados sobre o arquivo real no disco. Você também pode usar find -L para seguir links simbólicos para seus destinos e, em seguida, adicionalmente | sort | uniq para não contar os arquivos que estão vinculados às especificações do predicado find .

    
por 25.11.2015 / 23:54