web-dev-qa-db-ja.com

Unixパイプ:検索| ln -s

次のコマンドを使用して、いくつかのphpファイルをシンボリックリンクしようとしています。

find `pwd` -name "*.php" | ln -s * /home/frankv/www/bietroboter.de/symlinks

ただし、小さな*はフルパスを参照せず、ファイル名自体のみを参照するため、すべてのシンボリックリンクが壊れています。以下を使用してファイルに書き込む場合:

find `pwd` -name "*.php" > test.txt

できます。どうすれば正しくパイプできますか?また、「。php〜」を含む「.php」ファイルが必要ないことをどのように伝えることができますか

1
Frank Vilea

パイプは、あるプロセスからstdoutを取得し、それを次のプロセスのstdinに接続します。それはあなたがやろうとしていることには意味がありません(lnはstdinでは何もしません)。

あなたはおそらくこのようなものが欲しいでしょう(テストされていません):

find `pwd` -name "*.php" -execdir ln -s {} /home/frankv/www/bietroboter.de/symlinks \;
4