web-dev-qa-db-ja.com

フィッシュシェル:「shopt -s dotglob」アナログ

bashからfishに移行しようとしています。

fishshoptの類似物は何ですか?私は.bashrcからこの行を模倣しようとしています:

shopt -s dotglob # for mv * see hidden files
9
netimen

これは意図的なものです。ほとんどの場合、ユーザーはls-aなし)に対して非表示になっている隠しファイルを誤って一致させたくないでしょう。通常、ファイルはあなたをだますためだけでなく、理由のために隠されています。また、*が隠しファイルと一致する場合、隠しファイル以外のファイルとの一致は非常に注意が必要です。

ただし、bash shopt -s dotglobとは異なり、隠しファイルと一致させる必要はありません。 bashでは、shopt -s dotglobまたは.を誤って一致させることなく、..がディレクトリ内のすべてのファイルを一致させる唯一の方法です。ただし、魚のシェルは.または..をグロブと一致させることはできません。したがって、それは問題ではありません(何らかの愚かな理由で.または..と一致させる必要がある場合明示的に言ってください)。その上、魚は設計によりオプションを持たないようにしようとするので、dotglobはありません。

ディレクトリ内のすべてのファイルを一致させるには、ブラケット拡張を使用して、ドットで始まるファイルとそうでないファイルを検出することができます。 {.,}は、存在する場合と存在しない場合があるドットに一致するブラケット拡張です。それがすべてに一致した後の星。魚のグロブは.または..と一致できないため、次のコードはこれら2つのディレクトリを除くすべてと一致します(以下のコードを使用すると、bashは一致します)

cat {.,}*
7
Konrad Borowski