回答:
次のextglob
パターンを使用できます。
.@(!(.|))
.
.
最初にリテラルに一致します
@()
でextglob
、我々はその中に一つだけのパターンを持っているとして、それがあることを選ぶだろう、内部のパターンのいずれかと一致しますパターン
!(.|)
別のextglob
パターン(ネスト)で、noまたはoneのファイルに一致します.
。私たちがマッチしてきたように.
、既に開始時に、この全体のパターンが始まるすべてのファイルにマッチします.
除く.
と..
。
extglob
bash
Ubuntuのデフォルトでは、インタラクティブセッションで有効になっています。そうでない場合は、まず有効にします。
shopt -s extglob
例:
$ echo .@(!(.|))
.bar .foo .spam
@()
ですか?Simple .!(.|)
は同じように機能するようです。
!(.|)
は、同じように動作します。@()
この文脈の背後に何か目的はありますか?
find
ここでコマンドを使用できます。たとえば、次のようなもの
find -type f -name ".*" -exec chmod 775 {} \;
これにより、隠しファイルが検出され、アクセス許可が変更されます
編集して、@ gerritによるコメントを含めます。
find -type f -maxdepth 1 -name ".*" -exec chmod 775 {} \;
これにより、再帰的に検索する代わりに、現在のディレクトリの最上部の検索が制限されます。
-maxdepth 1
質問と他の回答の動作により密接に一致させるために、ここに追加することをお勧めします。