Find

如何在查找結果上執行 ln

  • September 26, 2021

我想為伺服器目錄中的圖像文件創建符號連結。目前我正在通過使用 php 函式執行此命令來做到這一點exec()

ln -sf path/to/source path/to/symlink

兩個文件名相同。

而且效果很好。在下一步中,我想為儲存在原始圖像旁邊的該特定圖像的其他大小創建符號連結。我搜尋並找到了這個連結:Execute a command on find results解釋使用這種格式:

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 是為了澄清我無權訪問所有文件。

find /path/to/file -name '*.png' -exec ln -s '{}' /path/to/symlink ';'
cd /path/to/file
find `pwd` -name "*.png" | xargs -I {} ln -s {} path/to/symlink/

引用自:https://unix.stackexchange.com/questions/467693