상대 경로 이름이 주어지면 어떻게 얻습니까?
- 마운트 포인트
- 장비
- LVM LV 이름
- LVM VG 이름
- LVM PV 이름
답변1
일반화하다
상대가 주어지면 $pathname
다음 명령은 다음 변수를 설정합니다.
$absolute $mount $dev $lv $vg $pvs
절대 경로 이름
absolute=$(readlink -f "$pathname")
read -r dev mount <<< $(df --portability "$pathname" | awk 'NR==2{print $1 " " $6}')
참고: btrfs 및 zfs 파일 시스템은 여러 장치에 걸쳐 있을 수 있지만 여기에는 하나만 나열됩니다.
LV 및 VG 이름
read -r lv vg <<< $(sudo lvs -o lv_name,vg_name --noheadings "$dev")
이름에 공백이 있을 수 있으니 걱정할 필요가 없습니다.남자 lvm(8)설명하다:
VG 및 LV 이름에 유효한 문자는 다음과 같습니다.
a-z A-Z 0-9 + _ . -
태양광 장치
pvs=$(sudo vgs -o pv_name --noheadings "$vg")
VG를 호스팅하는 PV가 여러 개 있을 수 있습니다.
장치 이름에 특수 문자가 있는 경우를 처리하려면 구문 분석을 확인하세요 pvs --reportformat json
.
보너스: 루프 장치 지원 파일
backing=$(losetup -lnO BACK-FILE "$dev")