Unix / Mac [bash / c api]: detecta se um determinado caminho aponta para um arquivo em um dispositivo removível

0

Existe um comando * nix ou C api que informará o tipo do dispositivo de armazenamento dado o caminho para o arquivo (resolvendo as montagens, links simbólicos, etc)? Preciso descobrir se o arquivo mora em um dispositivo removível.

    
por ak0 12.04.2011 / 02:16

3 respostas

1

Não sei se a localização é suficiente para revelar o dispositivo de armazenamento:

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

da página de manual:

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

Outra ideia é 'stat'

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

Existe uma linha 'Dispositivo:', mas não sei o que fazer sobre isso. Talvez você descubra?

    
por 12.04.2011 / 05:32
1

Algumas implementações * nix podem ter uma ferramenta interessante, mas não seria muito difícil usar a saída mount (1) para correlacionar um arquivo e seu sistema de arquivos:

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

Brindes no nome de montagem, qualquer arquivo que eu encontrar em / media / WINXP_PRO_SP1 estará no DVD-ROM.

    
por 12.04.2011 / 02:53
1

Se hal estiver instalado, você poderia, por exemplo scrape a saída de lshal .

    
por 12.04.2011 / 04:44