回答:
次のextglobパターンを使用できます。
.@(!(.|))
..最初にリテラルに一致します
@()でextglob、我々はその中に一つだけのパターンを持っているとして、それがあることを選ぶだろう、内部のパターンのいずれかと一致しますパターン
!(.|)別のextglobパターン(ネスト)で、noまたはoneのファイルに一致します.。私たちがマッチしてきたように.、既に開始時に、この全体のパターンが始まるすべてのファイルにマッチします.除く.と..。
extglobbashUbuntuのデフォルトでは、インタラクティブセッションで有効になっています。そうでない場合は、まず有効にします。
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質問と他の回答の動作により密接に一致させるために、ここに追加することをお勧めします。