![특정 파일이 어떤 블록 장치(/dev/sd* 또는 UUID)에 있는지 확인하는 방법 [중복]](https://linux55.com/image/118654/%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%96%B4%EB%96%A4%20%EB%B8%94%EB%A1%9D%20%EC%9E%A5%EC%B9%98(%2Fdev%2Fsd*%20%EB%98%90%EB%8A%94%20UUID)%EC%97%90%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%5B%EC%A4%91%EB%B3%B5%5D.png)
내 파일을 찾으려면 다른 응용 프로그램에 대한 문자열을 생성해야 합니다. 파일에 동적으로 액세스하는 방법을 알아야 합니다.
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)}