Специальный файл в Linux? - PullRequest
0 голосов
/ 01 июня 2018

Как новичок спрашиваю, как узнать, является ли файл особенным в Linux?Есть ли команда показать эти данные?

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Если вы имеете в виду device files, вы можете использовать file утилиту для проверки, например:

$ file /dev/sda
/dev/sda: block special (8/0)
$ file /dev/null
/dev/null: character special (1/3)

Вы также можете использовать GNU ls с -l:

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 20 20:54 /dev/null
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 20 20:54 /dev/sda

Как описано в документации:

 The file type is one of the following characters:
 (...)
  ‘b’
      block special file
  ‘c’
      character special file

или stat:

$ stat /dev/sda
  File: '/dev/sda'
  Size: 0               Blocks: 0          IO Block: 4096   block special file
Device: 6h/6d   Inode: 10245       Links: 1     Device type: 8,0
Access: (0660/brw-rw----)  Uid: (    0/    root)   Gid: (    6/    disk)
Access: 2018-01-20 20:54:41.153354807 +0100
Modify: 2018-01-20 20:54:41.153354807 +0100
Change: 2018-01-20 20:54:41.153354807 +0100
 Birth: -

$ stat /dev/null
  File: '/dev/null'
  Size: 0               Blocks: 0          IO Block: 4096   character special file
Device: 6h/6d   Inode: 1029        Links: 1     Device type: 1,3
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-01-20 20:54:41.124354808 +0100
Modify: 2018-01-20 20:54:41.124354808 +0100
Change: 2018-01-20 20:54:41.124354808 +0100
 Birth: -
0 голосов
/ 01 июня 2018

Один из способов - использовать команду file:

cd /dev
file tty

. Это выведет что-то вроде этого: tty: character special

Сообщение о том, что файл "tty" является специальнымфайл типа символа.Также есть специальные блоки.

Подробнее о команде file см. man file или https://linux.die.net/man/1/file.

0 голосов
/ 01 июня 2018

Не определяя, что такое специальный файл, я предполагаю, что «файл», который не является файлом, является специальным файлом.

Каталог - это специальный файл, как канал или символическая ссылка и т. Д.Если это так:

ls -l | grep ^- выдаст вам только «обычный» файл.

Чтобы найти только «специальные» файлы ls -l | grep -v ^-

Кстати, все это файл в Linux.

...