如何将目录中的内容复制到shell中的当前目录?

时间:2016-09-17 21:50:46

标签: linux shell

假设我有一个名为A的目录。

目录A有一堆c文件,我想将所有这些文件cp到脚本运行的目录中(如果它是Linux系统中的Home)。

为确保成功复制,我会回复所复制的内容。

这就是我的尝试:

cp -r A Home/  

echo `.c` # prints the files that have a .c at the end after they get copied

但是我得到的错误是该目录不存在,即使该目录也在主目录中。我也尝试将其更改为另一个似乎也无法正常工作的目录。

另一个问题是,这不会复制到它复制到home的当前目录。我使用此列表查看是否有shell命令,但找不到允许我将文件放在运行脚本的目录中的复制命令。

https://www-xray.ast.cam.ac.uk/~jss/lecture/computing/notes/out/commands_basic/

3 个答案:

答案 0 :(得分:1)

cp -R /path/to/other/directory/. .

由于它自己(用作复制目的地),.指的是当前目录。

在作为源位置传递给cp -R的路径的末尾给出,尾随/.表示该目录的名称不应该用作目标元素(因此,我们&# 39;不要复制目录本身,而是复制其内容)。

答案 1 :(得分:1)

您应该位于A的父目录中以将其复制到某处或提及要复制的文件的完整路径。

EG。如果B是A的父母。

您应该已经在目录B中执行命令

cp -R A <your_destination_folder_path>

EG。 cp -R A. 表示要将文件复制到当前路径

最好给出目的地的完整绝对路径。

如果您已经在目录A中,并且只想复制目录文件。你可以给这个

cp * <your_destination_folder_path>

如果您在任何目录中但只想复制A的内容,则提供完整(绝对)路径或A的相对路径以复制文件..

答案 2 :(得分:0)

最简单的方法如下(假设您要将目录及其内容复制到当前工作目录中):

cp -R / path / to / dir /。

-R表示递归。注意最后的空格和点。那不是句末句;该空格和点指示操作系统将cp目录和目录的内容指定到当前工作目录。