ln -T
効果は何ですか?私はフラグがBSDバージョンには存在せず、GNUバージョンにのみ存在することを知っていますln
。 BSD版にも存在しますか?ln
LINK_NAME
ベストアンサー1
GNU -T
()オプションは、スクリプトに役立つセキュリティ機能を提供します。--no-target-directory
ln
外部ソースから新しい名前を提供できる$newname
ファイルの新しい名前を作成するとします。$filename
注文する
ln -T "$filename" "$newname"
それではそうです。失敗するifは、$newname
誤ってそのディレクトリに名前を生成するのではなく、すでに存在しているディレクトリです$filename
(これにより、追加の操作が面白い方法で失敗する可能性があります)。
これはショートカットです。それはまるで
if [ ! -e "$newname" ]; then
ln "$filename" "$newname"
else
printf 'failed to create hard link "%s": File exists\n' "$newname" >&2
# Further code to handle failure to create link here.
fi
同様に-t
(--target-directory
)は、ファイルの新しい名前が他の場所ではなく既存のディレクトリに実際に作成されるようにする方法を提供します。
さらに、もし指摘作成者:Stephen Kittのコメントで、ターゲット/リンク名のファイル形式のテストをユーティリティ自体に移動すると、ターゲットが存在するかどうかをテストおよび/またはターゲットが変更される競合状態の影響を受けるリスクを減らすことができます。 。または、リンクを入力して実際に作成します。
POSIX、BSD、-T
またはではないのはなぜですか-t
?さて、GNUツールは一般的にたくさん追加された拡張機能は次のとおりです。便利。-T
オプションはその一部-t
です。ln
それらがなければできないことを実際にすることはできず、機能を追加することもありません。 BSDなどの一部のシステムでは、追加を検討していないか、追加を検討していますが、追加のアイデアを拒否しました(わかりません)。覚えていません。openbsd-tech
たとえば、誰かがパッチを送信するのを見て、それをメーリングリストに追加します。