/var/log
이고 의 일부라고 /dev/sda2
가정 합니다 ./var/spool
/var
/
/dev/sda1
이제 이런 명령을 내리고 싶습니다
$ sudo get_mountpoint_of /var/spool
정답을 얻으십시오.
/var/spool is part of / and is mounted on /dev/sda1
답변1
Linux 시스템에서는 다음과 같이 할 수 있습니다.
findmnt -nvoSOURCE -T /*some/path
...참조된 파일의 소스 장치만 인쇄합니다 /*some/path
.
옵션 분석:
-n
- 열 헤더 생략
-oSOURCE
만 선택
SOURCE
장치 출력 열(다른 열도 많이 있음),TARGET
마운트 지점 열을 나열하려면 추가하세요 .
-v
- 생략
[...]
가능한 부분/dev/device[/bindmnt]
결과
- 생략
-T
- 보고하기 전에 유효한 마운트 지점을 찾을 때까지
findmnt
해당 인수가 역방향으로 처리됨 을 나타냅니다 .--target
- 보고하기 전에 유효한 마운트 지점을 찾을 때까지
더 많은 정보를 알고 싶다면:
man findmnt
답변2
이렇게 할 필요는 없습니다 sudo
. 시작 지점에 대해 'df'를 수행한 다음 출력에서 마운트 지점을 읽는 스크립트를 작성할 수 있습니다. 마운트 지점이 "/"가 아닌 경우 스크립트는 반복적으로 어디에 있는지 묻습니다.저것설치되었습니다.
예를 들어, 제가 갖고 있는 기계에는 다음과 같은 것이 있습니다.
$ df /var/log
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/disk/by-uuid/8a1efcd1-0d32-4674-aa7a-c24c2cd924fd 19751804 12437492 6310948 67% /
일반적으로 스크립트는 디스크 정보가 LVM 또는 udev에 의해 관리될 수 있음을 인식하고(이 예에서는) 세부 정보를 가져와야 합니다.저것필요로 할 수도있다 sudo
).
OP가 제시한 사례는 확실히 더 간단합니다. 동일한 머신의 디스크 장치에 파일 시스템이 있습니다.
$ df /users
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 8255928 5548304 2288248 71% /users
마찬가지로, 스크립트는 단순히 "df"의 출력을 보고 그것이 완전한지 또는 중복되었는지 확인하고 어디에 있는지 물어볼 수 있습니다.저것설치되었습니다.
답변3
마운트 지점에 대한 정보
df -P file/goes/here | tail -1 | cut -d' ' -f 1
"일부" 정보의 경우
df /mountpointFromTheLastCommand | tail -1 | awk '{print $6}'
예:
[root@xxx ~]# df -P /root/download/ | tail -1 | cut -d' ' -f 1
/dev/sda2
[root@xxx ~]# df /dev/sda2 | tail -1 | awk '{print $6}'
/
이 정보를 사용하면 /root/download가 /의 일부이고 /dev/sda2 =]에 마운트되어 있다고 말할 수 있습니다.
이것이 바로 아이디어입니다. 원하는 출력과 일치하도록 최적화할 수 있습니다.