![파일 이름에서 마운트 지점, 장치, LV, VG, PV 이름을 가져옵니다.](https://linux55.com/image/118117/%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%EC%84%9C%20%EB%A7%88%EC%9A%B4%ED%8A%B8%20%EC%A7%80%EC%A0%90%2C%20%EC%9E%A5%EC%B9%98%2C%20LV%2C%20VG%2C%20PV%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EA%B0%80%EC%A0%B8%EC%98%B5%EB%8B%88%EB%8B%A4..png)
상대 경로 이름이 주어지면 어떻게 얻습니까?
- 마운트 포인트
- 장비
- 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")