尋ねるこれmpvプレーヤーとDVDの問題に関して、私は偶然にもっと一般的な質問を見つけました。通常、ディレクトリの1つに変数名を含むパスを指定することは可能ですか?
コマンドでファイルを実行したいとしましょう。実行ファイルはinにありますが、/dir1/dir2/dir3/
butの名前はdir2
常に含まれていますが変数ですdir3
(と似ていますが、whileとVIDEO_TS
は常に異なります)。/media/username/NAME-OF-DVD/VIDEO_TS/
NAME-OF-DVD
コマンドを使用してファイルを実行するには、パスを指定する必要があります。このようなコマンドを使用できますか(ディレクトリ名の1つが「universal」である可能性があるパスを使用)。
答え1
Bashはワイルドカードを利用できます。ワイルドカードを使用すると、複数の値に一致するパターンを指定できます。 REGEXと同様に動作しますが、同じではありません。
*(pattern)
パターンを0回以上一致させます。?(pattern)
パターンを0回または1回一致させます。+(pattern)
パターンを1回以上一致させます。[ ]
[a-z]
aからzまでを含め、ここに含まれる値と一致させることができます。( | )
パイプの両側の値を一致させることができます
パターンを入れないと、パターンはワイルドカードとして機能します。
したがって、このようなパスは次/dir1/dir2/dir3/
のように表現できます。
/dir1/*/dir3/
/dir1/dir*/dir3/
/dir1/*(dir2|otherdir)/dir3/
/dir1/dir*[1-99]/dir3/
詳しくは、次のリンクをご覧ください。http://mywiki.wooledge.org/glob
またはこれ:http://www.linuxjournal.com/content/bash-extend-globbing
答え2
/dir1/dirX/dir3/dir4
異なるディレクトリレベルが単一のディレクトリである限り、セクションがdirX
変更されず、dirX/dirY/dirZ
orのいずれかが可能な場合は、次のように参照できます。dirX
dirY
dirZ
/dir1/dirX/dir3/dir4
/dir1/*/dir3/dir4
ただし、DVDのタイトルには通常スペースが含まれているため、お客様の場合はmpv /media/username/*/VIDEO_TS
機能します。したがって、パス全体を二重引用符の間に置くことをお勧めします。"/media/username/*/VIDEO_TS"