Linux中cp命令没有复制所有文件的问题
最近需要在iPhone上查看Mac端obsidian的内容,按照官方流程,需要先在iPhone上将建立新的vault,然后在电脑端,将旧的笔记目录中的内容拷贝至新的目录,弃用旧目录,使用新目录即可。
但通过如下命令拷贝笔记库时发现,打开新的vault,ob界面和旧库差别很大,相关的插件也没安装配置。
$ cp -R <src_dir>/* <dst_dir>
仔细对比目录发现,.obsidian
目录没有被拷贝。印象中cp *
应该是可以拷贝所有文件。在stackexchange上发现类似问题链接,原来是*
不会包含.
开头的文件,即不会包含隐藏文件和目录。
知道原因,可以通过以下方式拷贝目录下所有文件。
方法1
$ cp -R <src_dir>/ <dst_dir>
方法2
$ cp -R <src_dir>/* <dst_dir>
$ cp -R <src_dir>/.* <dst_dir>
方法3
$ shopt -s dotglob
$ cp -R <src_dir>/* <dst_dir>
小结
bash中*
的扩展,不会包含.
开头的文件。