파일 이름에서 마운트 지점, 장치, LV, VG, PV 이름을 가져옵니다.

파일 이름에서 마운트 지점, 장치, LV, VG, PV 이름을 가져옵니다.

상대 경로 이름이 주어지면 어떻게 얻습니까?

  • 마운트 포인트
  • 장비
  • 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")

관련 정보