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' _ {} +
ここでは絶対パスを使用するので、どこでも実行できます。