1

bashMac OS X 10.5 および 10.6 のファイルを処理するスクリプトがあります。次に、ファイルがローカル ボリューム上にあるかリモート AFP ボリューム上にあるかを判断する必要があります。すべてのマウントポイントは/VolumesMac OS X にありますが、ローカル ボリュームとリモート ボリュームの間に違いは見られませんls -al(少なくとも へのシンボリック リンクであるブート ボリュームを除く/)。

プログラム的に、特に方法はありますか。マウントポイントのソースまたはタイプを決定するために、bashスクリプトから簡単に呼び出すことができるもの(絶対に必要でない限り、OS X 固有の API を使用して C/Obj-C でこれを書き直したくありません) ボリュームがどのデバイスにマップされるか ( 、、などでマウントされたボリュームが のデバイスを指さないと仮定)でも、それがローカルどうかを推測する方法がありますか?mount_afpmount_smbfsmount_webdav/dev

4

2 に答える 2

2

プレーンはありますか

$ mount

追加の引数なしでコマンドを実行すると、必要なものがわかりますか?

于 2010-11-29T23:08:45.027 に答える
2

私の頭の中では、プラットフォーム間で共通の API があるとは思えません。mountただし、コマンドの出力を解析することはできます。

~$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Users/nknight (hfs, local, nodev, nosuid, journaled, nobrowse)

mount引数なしは、ほとんどの *nix っぽいシステムでほぼ同じ効果がありますが、出力形式がどこでも標準化されているとは思いません。


ただし、アプローチを再考することをお勧めします。ネットワーク ファイルシステムの要点は、アプリケーションがそれらを気にする必要がないということです。これを行うことで達成しようとしていることを説明する別の質問を投稿することを検討してください。誰かがおそらく、より優れた、より一般化されたソリューションを提供できるでしょう。

于 2010-11-29T23:09:08.300 に答える