Существует ли команда * nix или C api, которая сообщит тип устройства хранения с указанием пути к файлу (разрешение монтирования, символических ссылок и т.д.)? Мне нужно выяснить, живет ли файл на съемном устройстве.

3 ответа3

1

Некоторые реализации * nix могут иметь классный инструмент, но не составит труда использовать вывод mount(1) для сопоставления файла и его файловой системы:

mfe@inker:/home/mfe$ mount
...
/media/WINXP_PRO_SP1 on /dev/dsk/c4t0d0s2 read only/nosetuid/nodevices/noglobal/maplcase/joliet/traildot/dev=14c0002 on Thu Apr  7 07:39:29 2011

Отдавая предпочтение названию монтирования, любой файл, который я найду в /media /WINXP_PRO_SP1, должен быть на DVD-диске.

1

Если установлен hal , вы можете, например, очистить lshal .

1

Я не знаю, достаточно ли find для обнаружения устройства хранения:

find /path/to/your/file.xml -printf "%F"

с man-страницы:

 %F     Type of the filesystem the file is on; this value can be used for -fstype.

Еще одна идея - «стат»

stat /home/stefan/.shosts  
  File: `/home/stefan/.shosts'
  Size: 12          Blocks: 8          IO Block: 4096   regular file
Device: 807h/2055d  Inode: 89647       Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  stefan)   Gid: ( 1000/  stefan)
Access: 2011-04-11 10:24:21.000000000 +0200
Modify: 2011-03-30 14:45:29.000000000 +0200
Change: 2011-03-30 14:46:03.000000000 +0200

Есть строка «Устройство:», но я не знаю, что с этим делать. Может быть, вы узнаете?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .