サーバーディレクトリのイメージファイルへのシンボリックリンクを作成したいと思います。現在、私はPHP関数を使用して次のコマンドを実行してこれを実行していますexec()
。
ln -sf path/to/source path/to/symlink
両方のファイル名は同じです。
そしてそれは素晴らしい作品です。次の手順では、元の画像と一緒に保存されているこの特定の画像の他の次元へのシンボリックリンクを作成したいと思います。検索して次のリンクを見つけました。検索結果に対してコマンドを実行するこの形式の使用方法について説明します。
find ... -execdir rm {} \;
今私が得た最も遠いのは、正しい正規表現でfindを使用してファイル(フルパス)をリストすることです。しかし、この出力を使用し、各ファイルをターゲットディレクトリの正確な名前に関連付ける方法がわかりません。
PS:元の画像とそのパスにのみアクセスできます。
編集する:
前述のように、イメージパスとそのファイル名にのみアクセスできます。そして、利用可能な画像サイズがどれくらいになるのかわかりません。だから、元の画像ファイルのすべての画像サイズがソースファイルにリンクされるように、findとlnを組み合わせたいと思います。たとえば、次のように元の画像のパスを取得します。
path/to/file/microlancer.png
これまで、私は次のコマンドを実行してきました。
ln -sf path/to/file/microlancer.png path/to/symlink/microlancer.png
findを実行すると、次のファイルを取得できます。
path/to/file/microlancer-260x185.png
path/to/file/microlancer-120x120.png
path/to/file/microlancer-705x321.png
path/to/file/microlancer-450x223.png
path/to/file/microlancer-150x150.png
path/to/file/microlancer-495x350.png
path/to/file/microlancer-300x149.png
path/to/file/microlancer-705x350.png
path/to/file/microlancer-450x350.png
path/to/file/microlancer-180x180.png
path/to/file/microlancer-36x36.png
path/to/symlink/
上記の各ファイルにシンボリックリンクを追加する必要があります。
PHPはここでは問題ではありません。 Linuxではコマンドのみが必要です。私はすべてのファイルにアクセスできないことを明確にするためにPHPに言及しました。
答え1
find /path/to/file -name '*.png' -exec ln -s '{}' /path/to/symlink ';'
答え2
cd /path/to/file
find `pwd` -name "*.png" | xargs -I {} ln -s {} path/to/symlink/