系统版本:Ubuntu 18.04.5 LTS
问题描述:现要将a目录下的所有内容(包括子目录)复制到b目录下,若b目录(即目标目录)不存在,则会出现a的子目录缺失的情况,演示如下:
1、b目录存在的情况:
1)执行命令前目录结构:
2)执行命令:
cp -r a/* b/
3)执行命令后的结构:
一切正常,没有问题。
2、b目录不存在的情况:
1)执行命令前目录结构(b目录不存在):
2)执行命令(同上):
cp -r a/* b/
3)执行命令后的结构:
出现异常:此时b目录会自动创建(执行过程中并未报错或警告),但复制过来的a目录的内容中子目录aa缺失,文件直接越过子目录aa复制过来,与a目录结构不一致。
总结:cp命令执行前应确保目标目录存在,或在执行cp命令之前创建,否则出现此类问题可能难以发现。或者cp命令可能有其他支持的选项解决这个问题,还未研究,之后有解法的话再补充。
欢迎交流~