新しくマウントされた USB ドライブのパスを動的に見つけるにはどうすればよいでしょうか?

新しくマウントされた USB ドライブのパスを動的に見つけるにはどうすればよいでしょうか?

実際の作業を実行する 2 番目または主要なスクリプトを起動するサイド スクリプトまたは設定変更が必要です。自分のコンピューターだけで実行する必要はありません。したがって、どの Linux コンピューターでも機能するはずです。

新しくマウントした USB のパス (および内容) を知る必要があります。そうすることで、パスを必要とする USB 上のデータを使用するスクリプトを実行できます。udev についていくつか読みましたが、説明が不十分でした。このコマンド:

ACTION=="add", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="1234", RUN+="/home/bibi/bin/xyz.sh

USB にデバイスがマウントされるたびにスクリプトを実行するように設定します。しかし、USB ドライブのパスはどうやって調べるのでしょうか? (例/home/???)

よろしくお願いします。データが不十分だったり、何か見落としがあったらごめんなさい

答え1

簡単な方法はUUID。 各パーティションには、スクリプトで使用できる一意のアドレスがあります。

ls -l /dev/disk/by-uuid

このコマンドは、パーティションへのシンボリックリンクとして現在マウントされている各ドライブの UUID を表示します (USB ドライブには複数のパーティションがある場合があります)

これらのコードはランダムに生成され、十分なエントロピーを持っているため、FAT32 パーティション (8 桁の 16 進数の文字列のみを持つため、8^16 = 281,474,976,710,656 の選択肢) を除いて、衝突する可能性はほとんどありません。

blkidおよびコマンドも確認することをお勧めしますfindfs

関連情報