問題
rm *
, mv *
, find -name "*"
などのワイルドカード指定は .
で始まるファイル を対象にできない。
たとえば .htaccess
が含まれるディレクトリで rm -rf *
しても .htaccess
は残ってしまう。
1. shopt を使う
shopt
で bash のオプションを変更できる。
ドットファイルも含める設定に変更
# 設定変更
shopt -s dotglob
# ドットファイルも含めて移動できるようになる
mv *
設定を解除する
shopt -u dotglob
設定を確認する
shopt -p
2. .??*で指定する
.??*
と指定すると .
ファイルを対象にできる
find . -name ".??*" -type f -maxdepth 1
.htaccess
結論
スクリプトで使うなら 1 の方法で 先頭で dotblog
設定、終了時に dotglob
解除するのがよさそう。
マニュアルで作業する場合は、ドットファイル以外を処理したあとに、2 の方法でドットファイルだけ処理するのがよい。