魚の殻:「shopt -s dotglob」アナログ


9

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

fishのアナログは何shoptですか?私は私からこの行を模倣しようとしてい.bashrcます:

shopt -s dotglob # for mv * see hidden files

ないことを確認してください。ドキュメンテーションでは、ドットファイルが含まれておらず、構成メカニズムについて言及されていません。おそらく{,.}*手動でグロブする必要があります。
グレン

1
なお、stackoverflow.comで質問することをお勧めします。
グレン

回答:


8

これは意図的なものです。ほとんどの場合、ユーザーは不可視ls(なし-a)の隠しファイルを誤って照合したくありません。通常、ファイルは非表示にするだけでなく、何らかの理由で非表示になります。また、*隠しファイルと一致する場合、非隠しファイルと一致させるのは非常に注意が必要です。

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

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

cat {.,}*
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.