Diferença entre documentos de texto e diretórios

1

Por que não há extensões para documentos de texto no Linux?

Por exemplo, quando você vê algo como /etc/issue , como você vai saber que issue é um arquivo - documento de texto - ou um diretório?

Às vezes, isso se torna confuso para mim já que eu abro um gerenciador de arquivos e tento navegar, não sei se devo procurar uma pasta ou um arquivo e talvez seja porque sou novo no ambiente Linux ?, alguma dica?

    
por Shayan 17.02.2018 / 22:00

1 resposta

3

Dependendo da sua maneira de ver os arquivos, é fácil distinguir, por ícones, por convenções, por pequenos indicadores.

Muitos dos comentários são, até certo ponto, verdadeiros, mas nada é suficiente como explicação.

  • No Windows, você pode criar arquivos de texto sem extensão. Não há requisito obrigatório para usar extensões.
  • "Por que não há extensões para documentos de texto no Linux?" Tem. No meu sistema, muitos deles, .txt, .csv, .sh, .scala, .java, .sql, .dat.svg, .xml, .html e muito mais. Muitos deles indicam mais do que apenas o texto legível. Nenhum deles é uma garantia.
  • Você pode até mesmo nomear um diretório "foo.txt" e adivinhar - isso também é possível no Windows.
  • "execute.txt.exe" é obviamente uma armadilha, mas apenas problemática, uma vez que o windows introduziu a ocultação do sufixo (somente o último) e decidindo por extensão, como executar um arquivo. Sistemas Unixlike têm permissões, um deles é, para executar um arquivo, e então o sistema tentará executá-lo. Não é uma garantia, isso é possível também.

No shell, você pode obter um formato de saída longo como:

-rw-rw-r--  1 stefan stefan    2184 Feb  5 04:27 ShortestPalindrome.java
-rw-rw-r--  1 stefan stefan     283 Dez 20 03:58 speedtests.lst
drwxr-xr-x  4 stefan stefan    4096 Nov 28  2012 src
-rw-rw-r--  1 stefan stefan    2609 Jan 16 23:01 Stringkuerzen-2018-01-16_23:01:27.java

com ls -la . O primeiro caractere 'd' diz, é um diretório.

O uso apenas de ls fornece uma breve lista. Então a cor, que é configurada por padrão, indica qual arquivo é o que, especialmente os diretórios. Se você não mexer com isso, deve funcionar bem.

O Linux tem o comando 'file', para fazer uma suposição informada, que tipo de arquivo é um arquivo e, na maioria das vezes, isso é certo. Mas pode ser enganado também. Não é tão fácil quanto o sistema de extensão do Windows, mas pode.

No entanto, nomear seu PNG-files winter.png, seu texto winter.txt e um shell script winter.sh ainda é uma boa ideia, porque é de fácil utilização.

Um navegador de arquivos, como o Thunar, indicará o tipo de arquivo que um arquivo possui, por Ícones na visualização de ícones, ícones menores na visualização de lista e os menores ícones na visualização compacta. Geralmente, a ordem de classificação coloca os diretórios em primeiro lugar.

O comandante da meia-noite tem sua própria maneira de indicar diretórios em cores brilhantes. Eu acho que a maioria dos gerenciadores de arquivos faz isso de uma maneira ou de outra.

Mas, ao contrário de outros arquivos, os diretórios não podem ser ridicularizados (exceto em links simbólicos, que é um tópico diferente). O diretório type está profundamente fixo no sistema - você não pode

cd abc.txt 

se abc.txt não for um diretório. E sim, pode ser, mas a maior parte do tempo não deveria.

Com muito esforço, alguém poderia gerar um programa, que pegaria o erro, para entrar em um arquivo ao invés de diretório, o que poderia ser útil, se o arquivo fosse um arquivo, por exemplo, mas no shell eu não Não vi uma coisa dessas.

E um diretório não pode esconder sua natureza. Mas isso é o mesmo para as janelas também, não é?

Conclusão: na maioria das vezes, as extensões são úteis, mas não garantem nada. Se você tiver arquivos de fontes confiáveis, você pode confiar neles, se não, o comando file é uma boa ajuda, mas também não é garantia.

Este é um exemplo de saída de

file * 
funreturn.scala:                              ASCII text
hexcodes:                                     ASCII text, with very long lines
inkscapepfad.scala:                           FORTRAN program, UTF-8 Unicode text
iterfind.sh:                                  Bourne-Again shell script, ASCII text executable
leaderbord.aoc:                               ISO-8859 text
lib:                                          directory

O palpite de que o inkscapepfad.scala é um código Fortran, está errado, e depender da extensão seria a melhor escolha, e isso, sem a intenção de enganar file , apenas por incidente.

    
por user unknown 18.02.2018 / 01:04