2016-07-18 5 views
0

Linuxでファイルまたはディレクトリの実パスとファイルシステムを検索しようとしています。例えば、私は、シンボルのリンクがあります。ファイルまたはディレクトリがLinuxにあるファイルシステムを特定する

[[email protected] ~]$ df -k 
Filesystem   1K-blocks  Used Available Use% Mounted on 
/dev/mapper/vg_apphost-lv_root 
         15350768 3442620 11121716 24%/
tmpfs     1962136  16 1962120 1% /dev/shm 
/dev/sda1    487652 79197 382855 18% /boot 
/dev/mapper/vg_apphost-lv_home 
         15351248 1558304 13006516 11% /home 
/dev/mapper/vg_apphost-lvdata2 
         67608152 14865428 49301676 24% /data2 

[[email protected] ~]$ ls -l /usr/local 
total 44 
drwxr-xr-x. 2 root root 4096 Jun 14 10:06 bin 
drwxr-xr-x. 2 root root 4096 Sep 23 2011 etc 
... 
lrwxrwxrwx. 1 root root 14 Dec 29 2015 apphome -> /data2/apphome 

をしかし、私は、次のコードを実行したとき:

In [1]: import os 

In [2]: os.path.abspath('/usr/local/apphome/ansible-hosts') 
Out[2]: '/usr/local/apphome/ansible-hosts' 
I was expecting: /data2/apphome/ansible-hosts 

は、どのように私は/ DATA2に位置していますansible-ホストを見つけることができますか?私はLinuxのコマンド 'dfファイル名'がそれを見つけることができます。 Pythonの方法はありますか?

答えて

1
  • os.path.realpathは、シンボリックリンクホップのチェーンの終点を与える。
  • os.path.abspathは相対パスを絶対パスにしますが、ターミナルの名前を指定しないこともあります。
  • os.readlink最寄りシンボリックリンクはos.path.realpath('/usr/local/apphome/ansible-hosts')を使用し、したがって

ホップ見出します。

+0

はい、動作します。どうもありがとう! – felixc

関連する問題