lvパスがあるとします。
lvpath=/dev/mapper/vg2-Music
カットを使用して分割するよりもlvdisplay -c
:
vgname="$(lvdisplay -c "$lvpath" | cut -d ':' -f 2 )"
lvname="$(basename "$(lvdisplay -c "$lvpath" | cut -d ':' -f 1 )" )"
結果:
$ echo VG: $vgname LV: $lvname
VG: vg2 LV: Music
質問:
より便利な方法がありますか?
lvdisplay -c
常にフォームにパスを提供できますか/dev/VGname/LVname
? (/dev/mapper/VGname-LVname
sedを使用してデフォルト名を交換する場合)
パスからLVnameをインポートするツールはLVM2パッケージにありますか?
ベストアンサー1
lvs
オプションとともに使用して-o
表示されるフィールドをカスタマイズします。
set $(lvs --noheadings -o lv_name,vg_name)
lv_name=$1 vg_name=$2
値の周りに余分なスペースが配置されるため、lv_name=$(lvs --noheadings -o lv_name)
直接書き込むことはできません。lvs
このコードスニペットは、ボリューム名にシェル特殊文字を含めることができないため安全です。