可変ディレクトリ名でパスを指定できますか?

可変ディレクトリ名でパスを指定できますか?

尋ねるこれ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/dirZorのいずれかが可能な場合は、次のように参照できます。dirXdirYdirZ/dir1/dirX/dir3/dir4/dir1/*/dir3/dir4

ただし、DVDのタイトルには通常スペースが含まれているため、お客様の場合はmpv /media/username/*/VIDEO_TS機能します。したがって、パス全体を二重引用符の間に置くことをお勧めします。"/media/username/*/VIDEO_TS"

関連情報