リンク作成時のアスタリスク表示動作

リンク作成時のアスタリスク表示動作

ファイルセットへのシンボリックリンクを作成しようとしています。

pdforigin_directory拡張子がanのすべてのファイルを現在のディレクトリにリンクしたいとします。

これまで、私は次のコマンドを持っています。

ln -nfs origin_directory/*.pdf -t .

これは非常にうまく機能します。現在のディレクトリにファイルがないとpdf問題が発生します。この場合、origin_directory現在のディレクトリにファイルが作成され、リンクが失われるためです。*.pdf

これを避ける方法はありますか?

答え1

Bashではこれがうまくいきます

if [ -e origin_directory/*.pdf ] ; then ln -nfs origin_directory/*.pdf . ; fi

編集:ファイルが多すぎる場合

if [ $(ls origin_directory/*.pdf | wc -l) -gt "0" ] ; then ln -nfs origin_directory/*.pdf . ; fi

答え2

使用する場合は、bashまず実行されます。

shopt -s failglob

または、より良い方法は、次のように入力することです。.bashrc

これでこれを行うたびに:

ln -nfs origin_directory/*.pdf -t .

成功または失敗します(エラーメッセージが表示され、何もしません)。


マニュアルから

failglobを設定すると、パス名拡張中にファイル名パターンが一致しない場合、拡張エラーが発生します。

関連情報