ワイルドカードを使用してシンボリックリンクを作成したいと思います。
ln -s jetty_server01.file jetty_*.file
したがって、名前付きファイルに対するすべての要求は同じディレクトリの宛先jetty_*.file
に接続されます。jetty_server01.file
それは可能ですか?
CentOS 7を使用してください。
答え1
いいえ、ファイルシステムの動作方法はそうではありません。ファイルシステムストレージ既存のファイル名、いいえ潜在的なファイル名。
" *
"は、ディレクトリ内のすべての既存のファイル名をユーザーが指定したパターンと一致させてファイル名を完成させるシェル機能「ワイルドカード」を意味します。プログラムでファイルを開くと、これは発生しません。
このようなことをしたい場合は、独自のファイルシステムを実装するか、実際の潜在的なファイル名のそれぞれへのリンクを作成する必要があります。
答え2
はい...名前にアスタリスクがあるシンボリックリンクを作成できます。
2番目のファイル名(アスタリスク付きの名前)を引用すると、ユーザーが提供するコマンドはこれを行います。
$ ln -s jetty_server01.file 'jetty_*.file'
$ ls -l jetty_\*.file
lrwxrwxrwx 1 ilkkachu ilkkachu 19 Jan 12 19:56 jetty_*.file -> jetty_server01.file
しかし、これはおそらくあまり役に立ちません...使用するたびにファイル名を引用する必要があります。jetty_*.file
これは、シェルで使用するとjetty_*.file
、次のようなすべての一致するファイル名に拡張されるためですjetty_server01.file
。
$ ls jetty_*.file
jetty_server01.file jetty_*.file@
正確な名前のファイルがあるため、globが他のファイルと一致するのを防ぎません。
たとえば、最新のファイルセットに接続する場合は、jetty_current.file
類似または別の名前を指定する方が簡単で混乱しにくくなります。もちろん、リンクを手動で更新する必要があります。
(シェル以外のプログラムではglobを拡張できないため、jetty_*.file
設定ファイルなどで使用できますが、これもやや混乱する可能性があります。)