![Unix/Mac [bash/c api]:偵測給定路徑是否指向可移動裝置上的文件](https://rvso.com/image/1271995/Unix%2FMac%20%5Bbash%2Fc%20api%5D%EF%BC%9A%E5%81%B5%E6%B8%AC%E7%B5%A6%E5%AE%9A%E8%B7%AF%E5%BE%91%E6%98%AF%E5%90%A6%E6%8C%87%E5%90%91%E5%8F%AF%E7%A7%BB%E5%8B%95%E8%A3%9D%E7%BD%AE%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6.png)
是否有一個 *nix 命令或 C api 可以告訴給定檔案路徑的儲存設備的類型(解析掛載、符號連結等)?我需要查明該文件是否存在於可移動設備上。
答案1
我不知道 find 是否足以揭示儲存設備:
find /path/to/your/file.xml -printf "%F"
從線上說明頁:
%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
有一行“設備:”,但我不知道該怎麼辦。也許你發現了?
答案2
一些 *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-ROM 上。
答案3
如果hal
安裝了,您可以例如 scrapelshal
的輸出。