我想创建其名称中包含的所有文件的软链接 ( ln -s
) ,并且可以在.folder2
*foo*
folder1
我已经尝试过使用for
、find
、 和find -exec ln
以及它们的组合,但我得到的只是一个名为 的损坏链接*foo*
或指向内部所有内容的链接folder1
。
答案1
你可以使用这个小片段
#!/bin/bash
folder1="/path/to/folder1"
find "$folder1" -type f -name '*foo*' -exec \
sh -c 'for f; do ln -s "$folder1" "/path/to/folder2/${f##*/}"; done' _ {} +
这可以从任何地方运行,因为我在这里使用绝对路径。