cp之间的区别

时间:2013-11-20 18:03:42

标签: linux bash unix

有两个父母A和B,有许多子目录和文件。坐在parentdir B中,键入这两个命令;他们之间有什么区别?

cp -r /path/to/A/* *

cp -r /path/to/A/* .

1 个答案:

答案 0 :(得分:1)

除非你是鲁莽的,否则你永远不会输入第一个命令:

*自身扩展为当前目录中每个非隐藏文件/目录的名称。因此,我们假设/path/to/A包含两个子目录(spoonfork),当前目录包含三个子目录(foobar和{{1} })。这意味着shell会将您的第一个命令解释为:

baz

换句话说,递归地将cp -r /path/to/A/fork /path/to/A/spoon bar baz foo /path/to/A/fork/path/to/A/spoonbar复制到baz(当前目录中碰巧会出现的项目)按字母顺序排列)。因此,您最终会在foo下面找到四个新目录:foofoo/forkfoo/spoonfoo/bar

您的第二个命令意味着以递归方式将foo/baz/path/to/A/spoon复制到当前目录中。这将在当前目录中创建两个新的子目录(/path/to/A/forkfork)。