Bagaimana cara mendapatkan UUID dari sistem file yang diberikan path?


9

Saya diberi jalur direktori atau file.

Skrip utilitas / shell mana yang andal akan memberi saya UUID sistem file tempat direktori / file ini berada?

Dengan UUID sistem file yang saya maksud UUID=...entri seperti yang ditunjukkan oleh misalnyablkid

Saya menggunakan Redhat Linux.

(seseorang menyarankan agar saya menanyakan ini di unix.stackexchange.com, jadi saya memindahkannya dari stackexchange.com asli)


3
Lihat unix.stackexchange.com/questions/11311/... tentang cara mendapatkan sistem file, berikut ini yang dapat Anda jalankan blkid.
muru

Perhatikan bahwa tidak semua sistem file akan memiliki UUID; blkid tidak akan memberi Anda UUID misalnya. untuk NFS mounts.
oliver

Jawaban:


8

Salah satu opsi adalah stat+ findmntkombo:

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

Di sini -nmenonaktifkan header, dan -o UUIDhanya mencetak nilai UUID. Opsi -c '%m'dari stathadir untuk output hanya titik mount dari jalan yang diberikan.


2
Tidak perlu untuk stat:findmnt -no uuid -T "$path"
don_crissti

3

Anda dapat menggunakan df untuk menemukan titik mount file, dan kemudian menerapkan hasilnya ke blkid ke UUID. Anda perlu menjalankan (setidaknya) blkid sebagai root agar ini berfungsi:

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

Lebih baik -o export, karena itu mencetak output formulir UUID=....
muru

@muru tidak jelas bagi saya apakah hanya diperlukan UUID ( -o value) atau UUID="value"jenis ekspresi ( -o export). Saya memilih nilai.
roaima
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.