パスにスペースがあるデバイスまたはファイルがマウントされていることを確認するシェルコード

パスにスペースがあるデバイスまたはファイルがマウントされていることを確認するシェルコード

私が見つけた検索結果は、ファイルシステムが特定のパスにマウントされていること、または特定のパスがマウントポイントとして使用されていることを確認することです。特定のデバイスまたはファイル(ファイルシステムイメージなど)がマウントされていることを確認する方法を探しています。別の言葉。このソリューションは、デバイス/ファイルパスのスペースを処理できる必要があります。

以下は検索結果に表示される解決策ではありません。

  • 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)

これにより、間違いのリスクがはるかに小さくなります。残りの線パターンを正規表現と一致させようとすることもできます。

関連情報