Qual é o número após as permissões de arquivo Unix / Linux, como “-rw-rw-r--. 1 "média na saída" ls -l "


17

Qualquer um pode explicar -rw-rw-r--. 1e fornecer algumas informações "detalhadas" sobre o comando ls -lart.

Especificamente, o que significa o número 1após as permissões do arquivo? Por que isso muda ou por que é diferente para arquivos diferentes?



2
Você já tentou encontrar informações (páginas de manual etc.)? As informações não estavam claras?
Daniel Andersson

1
@yi_H, não vejo nenhuma informação sobre o número após as permissões.
Shahbaz

1
Eu tinha certeza de que a pergunta de user1688102 já havia sido feita e respondida, mas não conseguimos encontrá-la. @ Shahbaz: é o número de referências ao mesmo inode, ou seja, o número de links físicos, ou seja, o número de nomes diferentes para o mesmo arquivo (excluindo os links virtuais).
RedGrittyBrick

1
Eu vi a página do homem. As informações não eram claras e não foram fornecidas informações sobre as permissões em man ls @Daniel
#

Respostas:


15

Alguns exemplos:

-rwxrw-r-- 1é um arquivo com privilégios de leitura, gravação e execução para o proprietário. O grupo leu e escreveu, e outros apenas leram. Não há links para esses dados.

drwxr-xr-x 10é um diretório com 8 arquivos. Os 2 extras são .e ... Somente o proprietário pode criar arquivos nesse diretório, outros podem acessar quais arquivos estão no diretório e ler o conteúdo desses arquivos, se os privilégios permitirem.

-r-------- 2é um arquivo que somente o proprietário pode ler, mas não pode executar ou modificar. Ele possui um link, o que significa que há outra referência de arquivo no disco em algum lugar que acessa os mesmos dados. Portanto, o "conteúdo do arquivo" real no disco possui 2 "arquivos" fazendo referência a ele. Esses links geralmente são criados usando lnsem fornecimento -s.

Então:

  • O caractere 1 é do tipo nó: geralmente -ou darquivo ou diretório indicativo.
  • Os caracteres 2, 3, 4 indicam rmorte, writual e xeco para o proprietário.
  • Os caracteres 5, 6, 7 fazem o mesmo para o grupo.
  • Os caracteres 8, 9, 10 fazem o mesmo com os outros.
  • O número de caracteres de permissão sucessivos indica o número de links se o nó for um arquivo e o número de "subnós" se o nó for um diretório.

Veja o capítulo O formato longo de man ls.


Como o @sapht disse, o número (para um diretório) no final implica que o número de arquivos em um diretório está errado, eu acho. Porque eu tenho milhares de arquivos no diretório e ele ainda está mostrando 2
VAR121

Eu nunca vi um sl que não imprime a contagem de subnós de diretório usando formato longo. Em qual SO / distribuição você está? Gnu ls,, busybox e darwin imprimem a contagem de nós. É realmente um diretório e não outro tipo de nó?
sapht

Minha distribuição (Linux Mint 18.3) não possui esse capítulo na lspágina do manual. Nenhum dos campos é explicado lá. Eu acho que é o mesmo para o Ubuntu.
bleistift2 20/02

5

Para arquivos , é o número de links físicos para o conteúdo do arquivo. 1 significa que não há links físicos (o caso típico), um número N acima de 1 significa que este e outros nomes de arquivos N-1 compartilham o mesmo conteúdo.

Para diretórios, a maioria, mas nem todos os sistemas de arquivos, relatam uma contagem de links de 2+ N, em que N é o número de subdiretórios.


1

[max @ localhost ~] $ ll

4 total

drwxrwxr-x 2 max max 4096 25 de set 17:11 zzz

Aqui 2 significa número de contagem de links

agora vou criar 3 diretórios dentro do zzz

agora o valor muda para 5

[max @ localhost ~] $ cd zzz
[max @ localhost zzz] $ mkdir abc
drwxrwxr-x 5 max max 4096 25 de setembro 17:16.
drwx ------ 5 max max 4096 25 de setembro 17:12 ..
drwxrwxr-x 2 max max 4096 25 de set 17:16 a
drwxrwxr-x 2 max max 4096 25 de setembro 17:16 b
drwxrwxr-x 2 max max 4096 25 de setembro 17:16 c

[max @ localhost zzz] $ cd

[max @ localhost ~] $ ll

4 total

drwxrwxr-x 5 max max 4096 25 de set 17:16 zzz

Isso ocorre porque agora 5 diretórios estão presentes no zzz 3 a b ce 2 são diretórios ocultos. ..

se eu criar um arquivo, nada acontecerá com a contagem de links

[max @ localhost zzz] $ touch 1 2 3
[max @ localhost zzz] $ ls -al
20 total
drwxrwxr-x 5 max max 4096 25 de setembro 17:26. ------> contagem atual de links do diretório
drwx ------ 5 max max 4096 25 de setembro 17:12 .. ------> contagem de links do diretório pai
-rw-rw-r-- 1 max max 0 Sep 25 17:26 1
-rw-rw-r-- 1 max max 0 de set 25 17:26 2
-rw-rw-r-- 1 max max 0 de set 25 17:26 3
drwxrwxr-x 2 max max 4096 25 de set 17:16 a
drwxrwxr-x 2 max max 4096 25 de setembro 17:16 b
drwxrwxr-x 2 max max 4096 25 de setembro 17:16 c
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
4 total
drwxrwxr-x 5 max max 4096 25 de set 17:26 zzz

mas se eu excluir qualquer diretório, a contagem de links mudará

[max @ localhost zzz] $ rmdir bc
[max @ localhost zzz] $ cd
[max @ localhost ~] $ ll
4 total
drwxrwxr-x 3 max max 4096 25 de set 17:28 zzz

Muitos detalhes (talvez demais) para dirs, não uma palavra para arquivos.
Ndemou 16/01/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.