경로에 공백이 있는 장치나 파일이 마운트되었는지 확인하는 쉘 코드

경로에 공백이 있는 장치나 파일이 마운트되었는지 확인하는 쉘 코드

내가 찾은 검색 결과는 파일 시스템이 특정 경로에 마운트되어 있는지 또는 특정 경로가 마운트 지점으로 사용되고 있는지 확인하는 것입니다. 특정 장치나 파일(예: 파일 시스템 이미지)이 마운트되었는지 확인하는 방법을 찾고 있습니다.별말씀을요. 이 솔루션은 장치/파일 경로의 공백을 처리할 수 있어야 합니다.

다음은 검색 결과에 표시되는 솔루션이 아닙니다.

  • mountpoint -q "${PATH}"${PATH}마운트 지점인지 만 테스트합니다 .
  • grep -q "${PATH}"일부 출력 에 적용하면 ${PATH}공백이 있을 수 있고 이와 같은 명령의 출력에도 공백이 있기 때문에 적용이 작동하지 않을 수 있습니다 mount.

또한 파일/장치가 마운트된 위치를 반환해야 합니다.

답변1

공백이 \040(8진수 값)을 사용하여 인코딩되는 이 파일 /proc/self/mounts(또는 ) 을 확인할 수 있습니다 ./proc/mounts

예를 들어 다음 /dev/sda1위치에 설치됩니다 ./mnt/mount sda1

grep '/dev/sda1' /proc/mounts | cut -d ' ' -f 2

반품:/mnt/mount\040sda1

grep "$(echo '/mnt/mount sda1' | sed 's/ /\\\\040/g')" /proc/mounts | cut -d ' ' -f 1

반품:/dev/sda1

답변2

/etc/mtab, /proc/mounts 등은 소스 파일 경로를 표시하지 않습니다.

명령이 실행되고 출력 형식이 지정됩니다.

따라서 다음을 시도해 볼 수 있습니다.

mount | egrep "${file_path=} on /"

export file_path="/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso"

mount | egrep "${file_path=} on /"
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso on /mnt/pc75 type iso9660 (ro,relatime)

그리고

mount | grep debian               
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso on /mnt/pc75 type iso9660 (ro,relatime)
/home/kalavan/Downloads/debian 6.0.10-amd64-netinst.iso_somethingelse on /mnt/projekte type iso9660 (ro,relatime)

그러면 실수할 위험이 훨씬 작아집니다. 나머지 선 패턴을 정규식과 일치시키려고 시도할 수도 있습니다.

관련 정보