この質問にはすでに回答があります:
回答
必要なのはスペースで区切られたglob一致ファイルのリストを作成するには:
for file in .* *; do echo "$file"; done
編集
上記のものは、ブレース展開を使用して別の形式に書き換えることができます
for file in {.*,*}; do echo "$file"; done
またはさらに短い:for file in {.,}*; do echo "$file"; done
選択したファイルのパスを追加する:
for file in /path/{..?,.[!.],}*; do echo "$file"; done
選択したファイルのパスを追加するファイル:
for file in /path/{.,}*; do echo "$file"; done
洗練されてリストから削除したい場合は、通常は不要な.
と
{.,}*
を{..?,.[!.],}*
に変更するだけです。
完全を期すには価値がありますドットファイルを純粋な*
と一致するようにdotglobを設定することもできます。
shopt -s dotglob
zsh
では、一致しない場合のエラーを防ぐために、nullglob
を追加で設定する必要があります。
setopt nullglob
または、代わりにglob修飾子N
をパターンに追加します:
for file in /path/{.,}*(N); do echo "$file"; done
コメント