A saída do comando "ls" depende da versão de "ls", das opções usadas, da plataforma usada, etc. Parece que você está usando o exemplo de um un * x (como Linux), e provavelmente usando uma típica versão "ls" moderna. Nesse caso:
-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe
?UUUGGGOOOS 00 UUUUUU GGGGGG #### ^-- date stamp and file name are obvious ;-)
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | \--- File Size
| | | | | | | \-------- Group Name (for example, Users, Administrators, etc)
| | | | | | \--------------- Owner Acct
| | | | | \---------------------- Link count (what constitutes a "link" here varies)
| | | | \--------------------------- Alternative Access (blank means none defined, anything else varies)
| \--\--\----------------------------- Read, Write and Special access modes for [U]ser, [G]roup, and [O]thers (everyone else)
\------------------------------------- File type flag
Não sei ao certo por que sua contagem de links é tão alta para o arquivo de exemplo que você listou. Algumas plataformas têm uma noção estranha do que constitui um "link". Eles geralmente incluem links físicos e links simbólicos, bem como entradas de diretório (é por isso que os diretórios costumam ter altas contagens de links - seu pai tem um link, o diretório tem um link para si mesmo no .
entrada, e cada um de seus subdiretórios tem um link de volta via ..
).
Algumas versões e / ou sinalizadores de linha de comando listarão o número de blocos usados em vez do número de bytes; um sistema de arquivos com um tamanho de bloco de 1024 bytes listará todos os tamanhos de até 1024 bytes como "1", significando que 1 bloco é usado, de 1025 a 2048 como "2", usando 2 blocos e assim por diante. Mas listar tamanhos de bloco por padrão (sem usar explicitamente uma opção de linha de comando) é raro na maioria das máquinas modernas un * x.
O sinalizador de acesso especial / alternativo é normalmente um espaço em branco, mas em algumas plataformas pode ser usado para indicar modos de acesso especiais / alternativos (como ACLs e descritores de segurança no WIN32, etc) e varia muito - consulte seu manual, man pages, info tool ou o que não.
Os sinalizadores de permissões (modo) (UUUGGGOOO) são três conjuntos de três caracteres, onde o primeiro conjunto é "Usuário" (isto é, Proprietário), o segundo conjunto é "Grupo" eo terceiro é "Outros" (ou seja , todos os outros, quem não é proprietário nem grupo). Os três sinalizadores de permissões em cada conjunto são normalmente r
ou -
, o que significa que o Usuário / Grupo / Outros pode ler o arquivo ( r
) ou não ( -
), seguido por w
ou -
indicando se eles podem gravar no arquivo (você pode ter arquivos que você pode escrever, mas não pode ler, por mais estranho que isso possa parecer!), e o terceiro caractere é um sinalizador "pega-tudo" para outros modos, tipicamente algo como x
para executar (para diretórios, significa que você pode tentar acessar o conteúdo do diretório) ou -
para nenhum. Às vezes você pode encontrar um s
ou S
para programas setuid e / ou setgid, ou outros caracteres menos comuns; veja sua documentação "ls" para os caracteres de modo que serão mostrados.
Finalmente, o primeiro caractere é o tipo de arquivo; normalmente um de: d
para o diretório, l
para um link simbólico (links físicos mostram normalmente sem um caractere especial) ou -
para um arquivo normal. Existem muitos outros tipos de arquivos, mas menos comumente vistos, para vários sistemas de arquivos. Esses dez primeiros caracteres (tipo de arquivo e permissões) são discutidos na Wikipedia . Novamente, sua documentação lhe dirá exatamente que tipo de arquivo seu comando suporta e exibe.
BTW, se você não encontrar uma página man / info para o próprio "ls" ("man ls" / "info ls"), tente procurar no pacote "coreutils" ("info coreutils"). Observe também que, entre as plataformas mais comuns, as plataformas da Microsoft tendem a não traduzir muito bem para a saída "ls", portanto, você pode observar comportamentos estranhos, sinalizadores ou outras informações incomuns na saída, dependendo de como sua versão de "ls" foi compilado, o que foi ligado, etc.
Mais uma ressalva: O registro de data e hora do arquivo geralmente é a data / hora em que o arquivo foi modificado pela última vez, e não a hora em que o arquivo foi criado. De fato, em um sistema de arquivos un * x-ish, não há registro do tempo de criação do arquivo; O campo ctime NÃO significa "tempo de criação" como nos sistemas de arquivos FAT / NTFS, mas significa "inode [C] hange time" - a hora em que o próprio inode foi modificado pela última vez. Os carimbos de hora "mtime" (último [M] odificado) e atime (último [A] ccesed / read) são os mesmos em ambos os sistemas - embora a precisão (FAT tem uma granularidade de dois segundos, por exemplo) e fuso horário possam variar .