특정 파일이 어떤 블록 장치(/dev/sd* 또는 UUID)에 있는지 확인하는 방법 [중복]

특정 파일이 어떤 블록 장치(/dev/sd* 또는 UUID)에 있는지 확인하는 방법 [중복]

내 파일을 찾으려면 다른 응용 프로그램에 대한 문자열을 생성해야 합니다. 파일에 동적으로 액세스하는 방법을 알아야 합니다.

customfile=/dev/sda1:/images/myfs.squashfs

내가 할 수 있다고 가정합니다 stat some/file/here.txt. 블록 장치와 해당 장치의 절대 경로를 결정하기 위해 어떤 명령을 사용할 수 있습니까?

here.txt또한 장치의 절대 경로를 어떻게 결정합니까 ?

답변1

파일이 있는 장치를 찾을 수 있습니다.df. 옵션을 사용하여 출력 열을 선택합니다 --output. 출력 에는 df파일 시스템의 장치가 포함됩니다. 당신이 사용하는 경우좌심실 용적,루크스,Mdled등,원천열에는 논리 장치에 대한 경로가 포함됩니다.

df --output=source $path |tail -1

~에서표적이 열에서 장치의 마운트 지점을 확인할 수 있습니다.

df --output=target $path |tail -1

마운트된 장치의 루트에 상대적인 경로를 얻으려면 경로의 시작 부분에서 마운트 지점을 제거하십시오. 쉘을 사용하다매개변수 확장:

echo ${path#$(df $path --output=target |tail -1)}

관련 정보