mv ./* ../somedirectory
私は最近似たようなことをしましたが、似たようなファイルが移動されないのを見て.gitignore
驚きました。
私の仕事のほとんどはOS Xのzshで行われました。 OS Xでbashを試しましたが、同じ動作を見つけました。*
ドットファイルと一致しません。これは私にとって非常に望ましくないようですが、明らかにこれはbashのデフォルトです。 (私が知っている限り、これはzshのデフォルト値かもしれませんが、数年前に.zshrcで変更して動作が異なることを忘れてしまったかもしれません。)
期待どおりに動作するように bash を設定するにはどうすればよいですか? for * はドットファイルを無視せずにすべてのファイルと一致します。
これがまったく明確でない場合、再現方法は次のとおりです。
cd /tmp
mkdir {t,d}est
touch test/{.,}{1,2,3,4,5,6,7}
ls -hal test
mv test/* dest
ls -hal test # notice dot files are still there
ls -hal dest # notice only some files were mv'ed
ベストアンサー1
吹く
すでに知っているように、bashは.
名前の先頭のaまたはスラッシュと一致しません。問題の点の一致を変更するには、次のオプションを設定する必要がありますdotglob
。男乱交:
dotglobを設定すると、bashには「.」で始まるファイル名が含まれます。 パス名拡張の結果です。
bashを使用して有効/設定するには、shopt
次の手順を実行します。
shopt -s dotglob
zshの場合は、このオプションを使用することもできますが、次のように有効にする必要がありdotglob
ます。setopt
setopt dotglob