O que significa 'l' nos metadados dos arquivos?

5

Quando digitamos ls -l , obtemos metadados referentes a todos os objetos no diretório atual.

Os metadados têm 10 traços e o traço 1 st indica se o objeto é um diretório ou arquivo ou um link

d indica que o objeto é um diretório como uma pasta

- indica que o objeto é um arquivo etc: .cpp, .png, .jpeg

l indica que o objeto é um link

O que exatamente significa quando um objeto é um link, como você cria um objeto que é um link?

    
por Computernerd 05.03.2014 / 17:10

3 respostas

14

O l que você está referenciando significa que o arquivo é um link (simbólico) para outro arquivo (ou diretório).

Exemplo

lrwxrwxrwx.   1 root root   22 Feb 24 17:36 jcmd -> /etc/alternatives/jcmd
lrwxrwxrwx.   1 root root   23 Feb 24 17:36 javap -> /etc/alternatives/javap
lrwxrwxrwx.   1 root root   23 Feb 24 17:36 javah -> /etc/alternatives/javah

Estes foram criados com um comando, ln -s source link . A fonte é o arquivo / diretório que queremos vincular, o "link" é o nome que queremos dar ao link.

fazendo um link

$ ln -s ~/winfile.txt a_link.txt

confirmando

$ ls -l | grep winfile
lrwxrwxrwx.   1 saml saml   22 Mar  5 11:15 a_link.txt -> /home/saml/winfile.txt
-rw-rw-r--.   1 saml saml   41 Mar  5 07:44 winfile.txt

Mais detalhes

Se você consultar a página info ls info, encontrará descrições de todos os símbolos usados na saída de ls .

trecho

 The file type is one of the following characters:

 '-'          regular file
 'b'          block special file
 'c'          character special file
 'C'          high performance ("contiguous data") file
 'd'          directory
 'D'          door (Solaris 2.5 and up)
 'l'          symbolic link
 'M'          off-line ("migrated") file (Cray DMF)
 'n'          network special file (HP-UX)
 'p'          FIFO (named pipe)
 'P'          port (Solaris 10 and up)
 's'          socket
 '?'          some other file type

Referências

10.1.2 Quais informações são listadas - documentação do coreutils em ls

    
por 05.03.2014 / 17:13
5

um link simbólico é uma referência para outro arquivo. você cria com o comando ln :

ln -s /some/file mylink
    
por 05.03.2014 / 17:13
4

l indica que o objeto é um link simbólico . Isso é simplesmente um ponteiro para algum outro objeto, que pode ou não existir. As tentativas de acessar o link resultarão no objeto sendo apontado para ser acessado. O objeto pode ser qualquer coisa: um arquivo, diretório ou arquivo especial funcionarão.

Por exemplo, em seu diretório raiz, você pode ter isto:

lrwxrwxrwx 1 root root 27 Sep 12  2012 /vmlinuz -> boot/vmlinuz-2.6.32-5-amd64

Isso significa que, quando /vmlinuz é acessado, o arquivo que está sendo apontado é lido em seu lugar. Se esse arquivo não existir, a operação falhará.

Para criar um link simbólico, use o comando

ln -s source-file link-file

Isso criará um link parecido com

link-file -> source-file

Observe que isso é diferente de um hard link , criado com a omissão da opção -s . Um link físico cria um ponteiro do sistema de arquivos para o mesmo inode usado pelo objeto de origem e não pode apontar para um objeto em um sistema de arquivos diferente.

    
por 05.03.2014 / 17:16

Tags