특정 하위 디렉터리가 어디에 마운트되어 있는지 확인하는 방법은 무엇입니까?

특정 하위 디렉터리가 어디에 마운트되어 있는지 확인하는 방법은 무엇입니까?

/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 =]에 마운트되어 있다고 말할 수 있습니다.

이것이 바로 아이디어입니다. 원하는 출력과 일치하도록 최적화할 수 있습니다.

관련 정보