最近当我做了类似的事情mv ./* ../somedirectory
并发现文件.gitignore
没有移动时,我感到很惊讶
。
我的大部分工作都是在 OS X 上的 zsh 中完成的,而这个惊喜让我在 CentOS 上的 bash 中感到惊讶。我在 OS X 上尝试了 bash 并发现了相同的行为:*
与点文件不匹配。这对我来说似乎很不受欢迎,但显然这是 bash 的默认设置。(这可能也是我记得的所有 zsh 默认值,但我可能在几年前在我的 .zshrc 中更改了它并忘记了它的工作方式不同。)
如何将 bash 配置为按我预期的方式运行:用于 * 匹配所有文件,而不是忽略点文件。
如果这完全不清楚,这里是如何重现它
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
Run Code Online (Sandbox Code Playgroud)