bashのforループには、ドットとダブルドットのフォルダが一覧表示されます。

bashのforループには、ドットとダブルドットのフォルダが一覧表示されます。
for f in ~/common/.*; do
    echo $f
done

記載されている項目は、

/home/sk/common/.           #undesired
/home/sk/common/..          #undesired
/home/sk/common/.aliasrc

処理をスキップし、これを防ぐために醜いハッキングを使用してい.ます..

if [[ $f  == '/home/sk/common/.' || $f  == '/home/sk/common/..' ]]; then
  true 
else
  --do the ops
fi

隠すことができるシェルオプションはありますかdotted folders?私もls -aこの問題に直面しています。

ベストアンサー1

bashを使用して行う方法は次のとおりですextglob

shopt -s extglob
for f in .!(|.); do
  echo "$f"
done

パターンextglob!(pattern-list)、与えられたパターンを除くすべての項目と一致します。例のパターンは、.で始まり、後に何もまたは他の単一が出ないすべての項目と一致することを意味します.

おすすめ記事