(cp命令正解)linux下复制目录中所有文件及子目录(包括隐藏文件)
正解:
cp -ri /opt/a/. /opt/b
误区一:
cp -r /opt/a/.* /opt/b
.* 包括了所有的文件和目录,但是也把 . 和..
这两个包括在内,所以会递归复制,父目录的所有文件。
误区二:
cp -r /opt/a /opt/b
分两种情况讨论
如果/opt/b不存在,则创建。并且把/opt/a中所有的文件和子目录都复制到/opt/b中。相当于克隆了一个目录。
如果/opt/b存在,将把/opt/a文件夹本身复制到/opt/b中,复制成功后,目录结构为/opt/b/a
文件归档
当我们去拷贝一个目录时,我们会用-r或者-R选项。但是我们也可以用-a选项来归档文件。这样会创建文件和目录的准确套录,如果有的话也可以包括符号链接。下面是示例:[译注:-a 会保留原文件或目录的属性]
显示正在做什么
默认情况下,当拷贝作业成功时,我们仅仅会再次看到命令提示符。如果你想了解在拷贝文件时都发生了什么,我们可以用 -v 选项。
当原文件较目标文件新时拷贝
我们用 -u选项来实现。下面是具体示例:
- $ cp -vu *.txt /home/pungki/office
使用交互模式
交互模式下会询问是否覆盖目标目录下的文件。使用 -i 选项,启用交互模式。
创建备份文件
当目标目录已经含有同名文件,默认情况下 cp 命令会覆盖目标目录下的同名文件。使用 --backup 选项,cp 命令会为每一个现有的目标文件做一个备份。../office 相对于 /home/pungki/office 。下面是示例:
- $ cp --backup=simple -v *.txt ../office