これはおそらくzshのマニュアルにあります。怠惰でここに質問してすみません。次の例に示すように、zshの:tには何か特別なものがあるようです。
% x=foo
% echo $x:bar
foo:bar
% echo $x:toad
foooad
動作は$x:bar
予想される動作ですが、:t
バックスペースとして表示されるようです。誰かがこの問題を議論するマニュアルの適切なセクションに案内してもらえますか?ありがとうございます!
ベストアンサー1
:t
は修飾子
t [ digits ]
すべての先行パス名コンポーネントを削除し、最後のコンポーネント(末尾のコンポーネント)のみを残します。これは「」と同じですbasename
。すべての末尾のスラッシュを削除して開始します。素数は上記の(h)と同じ方法で処理されますが、この場合、デフォルト値1の代わりに末尾のコンポーネントの数が保持されます。 0 は 1 と同じ方法で処理されます。
% x=/foo/bar/baz
% echo $x:toad
bazoad
% echo $x:t
baz
% echo ${x:t2}
bar/baz
(:t
、cshの場合は1990年から使用されており、:t2
バリアントは次のとおりです。2019年に追加バージョン 5.8 で初めて利用可能)。