ln
複数の引数を取りますが、その場合はターゲット ディレクトリを指定することを忘れないでください。
したがって、あなたの例では .
はターゲット ディレクトリなので、
ln -s ../source/*.bar .
man ln
から;上記のコマンドは 3 番目の形式を使用します:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
- 最初のフォームで、LINK_NAME という名前で TARGET へのリンクを作成します。
- 2 番目のフォームでは、現在のディレクトリに TARGET へのリンクを作成します。
- 3 番目と 4 番目のフォームでは、DIRECTORY 内の各 TARGET へのリンクを作成します。
globstar (bash/zsh set by:shopt -s globstar
) を使用して再帰的に試すことができます ):
ls -vs ../**/*.bar .
または、リストが長すぎる場合は find
を使用します ユーティリティ:
find .. -name \*.bar -exec ln -vs "{}" dest/ ';'
これにより、dest/
にリンクが作成されます 、または .
に変更します 現在のフォルダー用。
find
を使用
certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;
また、絶対パスを使用することを忘れないでください (可能な場合) シンボリック リンクを使用します。