wc mostrando diferenças

0

Eu tenho dois diretórios como abaixo

/appl/exe/04/dat>ls -alrt
total 290
drwxrwxr-x  30 exceed   exceed      1024 Jun 11 09:04 ..
drwxrwxrwx   2 exceed   exceed    138240 Aug 17 03:56 .

/appl/exe/13/dat>ls -alrt
total 18
drwxrwxr-x  28 exceed   exceed      1024 Jul  6 13:12 ..
drwxrwxrwx   2 exceed   exceed      7680 Aug 16 20:46 .

Por que isso mostra uma diferença no wc? O que isso significa?

wc -l / appl / exe / 04 / dat - > mostra como abaixo:

   4 /appl/exe/04/dat

wc -l / appl / exe / 13 / dat - > mostra a saída como abaixo:

   0 /appl/exe/13/dat
    
por Sandra 17.08.2015 / 12:00

1 resposta

3

Antes de tudo, observe que você está executando wc -l em um diretório . Esse comando é para contar linhas em arquivos de texto. Então, wc está basicamente olhando para qualquer formato binário interno que seu sistema de arquivos usa para representar diretórios e contando o número de vezes que o byte 0x0a aparece lá, o que provavelmente não lhe dirá nada útil.

Dito isso, mesmo que os dois diretórios estejam vazios, observe que o tamanho de 04/dat é muito maior. Isso significa que em um ponto ele continha muitos arquivos que foram apagados. Mas a exclusão de arquivos não remove todos os rastreamentos dos blocos de diretório. Dependendo do sistema de arquivos, ele pode apenas zerar o inode ou unir a entrada do diretório na entrada anterior do fragmento.

Então, basicamente, há muito mais sobra de crud em um diretório do que no outro, então não deve ser surpresa que mais crud contenha mais alguns caracteres de nova linha (byte 0xa). E note que esses bytes nem necessariamente têm que ter sido parte de um nome de arquivo, eles podem ter sido parte de um inumber.

    
por 17.08.2015 / 12:07

Tags