ディレクトリのパス (場合によってはファイルのパス) が渡されます。
このディレクトリ (またはファイル) が配置/保存されているファイルシステムの UUID を確実に教えてくれるユーティリティ/シェルスクリプトはどれですか?
(ファイルシステムのUUIDとは、たとえば blkid で示される「UUID = ...」エントリを意味します)
(これは RedHat Linux で発生しています)
この行を試してください:
sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1
上記の行で$file
は、ファイル/ディレクトリを保存するための変数です。行を呼び出す前に、ファイル/ディレクトリが存在するかどうかを確認することをお勧めします。
そして、この行にはルート権限が必要です ( sudo
)
\df
エイリアスがある場合にエイリアスを使用しないようにするためのものです。たとえば、-T
オプションを使用すると、--output
いくつかのテスト:
kent$ file="/home/kent/.vimrc"
kent$ sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1
9da1040a-4a24-4a00-9c62-bad8cc3c028d
kent$ file="/etc"
kent$ sudo blkid -o value $(\df --output=source "$file"|tail -1)|head -1
2860a386-af71-4a28-86d7-00ccf5d12b4d
パスのマウントポイントのデバイスを見つけ、
DEVICE=$(df /path/to/some_file_or_directory | grep "$MOUNTPOINT\$"| cut -f1 -d" ")
デバイスの UUID を取得します。
sudo blkid $DEVICE
簡単に、次のように入力できます。
pchero@mywork:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jan 23 09:03 0267689b-b929-4f30-b8a4-08c742f0746f -> ../../sda2
lrwxrwxrwx 1 root root 10 Jan 23 09:03 2d682ea1-dab0-49ba-a77a-9335ccd47e58 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jan 23 09:03 64e733e9-2e6a-4d3e-aabe-d0d26fbfc991 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan 23 09:03 a99fb356-4e01-4a1c-af41-001b0fd8a844 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jan 23 09:03 f2f7618e-76c5-4e9a-9657-e002d9a66ccf -> ../../sda4