如何在查找结果上执行 ln

如何在查找结果上执行 ln

我想为服务器目录中的图像文件创建符号链接。目前我正在通过使用 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/

相关内容