パスを指定したファイルシステムのUUIDを取得するには?

パスを指定したファイルシステムのUUIDを取得するには?

ディレクトリまたはファイルへのパスを受け取ります。

このディレクトリ/ファイルを含むファイルシステムのUUIDを確実に提供できるユーティリティ/シェルスクリプトは何ですか?

ファイルシステムのUUIDは、UUID=...次のエントリを意味します。blkid

私はRed Hat Linuxを使用しています。

(誰かがこの質問をunix.stackexchange.comに尋ねなければならないと提案し、元のstackexchange.comから移動しました。)

答え1

1つのオプションはstat+findmnt組み合わせです。

findmnt -n -o UUID $(stat -c '%m' "$path")

ここで-nヘッダーは無効になり、-o UUIDUUID値のみが印刷されます。特定のパスのマウントポイントのみを出力する-c '%m'オプションがあります。stat

答え2

dfを使用してファイルのマウントポイントを見つけ、blkidの結果をUUIDに適用できます。これが機能するには(少なくとも)blkidをrootとして実行する必要があります。

FILE_OR_DIR="$PWD"
blkid -s UUID -o value $( df "$FILE_OR_DIR" )

関連情報