Arquivos regulares são todo o texto ou arquivo de dados, também pode ser um arquivo binário. Para arquivos regulares, a saída de ls -l
seria como,
-rw-rw-r-- 1 username group 74 Nov 27 16:03 mytext.txt
Em geral, o primeiro lugar para um arquivo regular a -
deve aparecer. Nesses casos, if [ -f FILE ]
seria apropriado.
Arquivos não-regulares são dispositivos, pipes, sockets, tty etc. todos os outros que se enquadram na filosofia "Tudo é um arquivo", como apontado pela drc. Você pode acessar Unix_file_types para obter mais informações.
Você pode verificar a saída ls -l
de alguns,
crw-rw---- 1 root tty 4, 1 Dec 9 13:41 /dev/tty1
brw-rw---- 1 root disk 1, 11 Dec 9 13:41 /dev/ram11
Para todos os arquivos não regulares, você deve usar if [ -a FILE ]