좋아, 그래서 리눅스 시스템에서 사용자 할당량 내에서 작업해야하므로 주어진 경로에 대해 장치 이름 (예 : /dev/md2
)을 찾을 수 있어야합니다. 그 경로에 대한 정확한 쿼터를 조회 할 수 있습니다.경로 또는 볼륨 식별자에 대한 장치 이름 가져 오기
지금, 나는 사용하여 충분히 쉽게 마운트 포인트를 얻을 수 있습니다 :
df -k "/volume1/foo/bar" | tail -1 | awk '{ print $6 }'
을 내가 그 지점을 마운트 장치 이름으로 변환 취할 수있는 가장 좋은 방법의 확실하지 않다 그러나? 문제를 더욱 복잡하게
, 나는 위의 명령에서 얻을 마운트 지점은 사실 내가처럼 보이는 뭔가가있을 수있는 경우에 암호화 된 폴더가 될 수 있습니다 의미
/dev/md2 -> /volume1
/volume1/@[email protected] -> /volume1/Foo
을 위 df
그 명령은/volume1/Foo의 마운트 지점을 식별합니다. 그러나 마운트 지점을 통해 작업하면서 안정적인 플랫폼 독립적 인 방법이 필요하며 quota
과 함께 사용해야하는 실제 장치 이름을 찾으십시오.
구체적으로; 마운트 위치를/Volumes /에 넣는 OS X와 같이 특정 위치에 볼륨을 마운트하는 환경에서 작업 할 수 있으므로 장치의 마운트 지점 인 경로의 첫 번째 부분에만 의존 할 수 없습니다.
실제로 마운트 지점을 찾을 필요는 없습니다. 'stat -c % d/volume1/foo/bar'로 직접 얻을 수있는 대상 파일이있는 장치 번호가 필요합니다. 그런 다음 장치 번호가있는 특수 노드를'/ dev'에서 찾아야합니다. 내가 마지막 부분을 담당하는 훌륭한 스크립트 도구를 찾을 수는 없지만 grub를 설치했다면'grub-probe '를 사용하여 질문을 하나의 명령 줄에서 해결할 수 있습니다 :'/ usr/sbin/grub-probe --target = device/volume1/foo/bar' – Celada
'di'프로그램을 사용해 볼 수도 있습니다 : http://gentoo.com/di/. 할당량 정보를 조회하여 사용 가능한 공간 표시에 사용합니다. –
불행히도 나는 grub 또는 di를 사용할 수 없습니다. 가능한 한 일반적인 목적으로 스크립트를 유지해야합니다. df와 할당량이 다른 플랫폼에서 동일한 형식을 보장하지는 않기 때문에 큰 두통입니다, bah! 나는 심지어 내가 stat를 위해 -c 매개 변수에 의존 할 수 있다고 확신하지 않는다. 내가 사용하고있는 하나의 장치는 그것을 지원하지 않는다. 그것은 grep과 awk를 의미한다. 나는 장치 ID를 stat로부터 어떻게 처리해야할지 모르겠다. 나는 어디에서나 인식 할 수없는 "어/14d"중 하나를 가지고있다. – Haravikk