在bash中,我需要这样做:
将所有文件放在目录中
将它们复制到现有目录
我该怎么做呢?我试过了cp -r t1 t2
(t1和t2都是现有目录,t1中有文件),但是它在t2内创建了一个名为t1的目录,我不希望那样,我需要t1中的文件直接进入t2内。我该怎么做呢?
在bash中,我需要这样做:
将所有文件放在目录中
将它们复制到现有目录
我该怎么做呢?我试过了cp -r t1 t2
(t1和t2都是现有目录,t1中有文件),但是它在t2内创建了一个名为t1的目录,我不希望那样,我需要t1中的文件直接进入t2内。我该怎么做呢?
Answers:
您想要的是:
cp -R t1/. t2/
末尾的点告诉它复制当前目录的内容,而不是目录本身。此方法还包括隐藏的文件和文件夹。
mv
。有人知道为什么吗?
如果要将某个目录中的内容复制到当前目录中,请执行以下操作:
cp dir1/* .
假设您不尝试复制隐藏文件。
cp dir1/* dir2
或者,如果您在dir1中也有要复制的目录
cp -r dir1/* dir2
dir1/.*
不是一个好主意,因为它会复制dir1 / ..(即您实际上要复制的目录的父目录)。它还复制dir1 /。很好,除了已经(大部分)已经被复制,所以您要进行两次工作。
dir1/.*
通过cd-进入要复制的目录,然后将其称为来解决/ hidden files问题.
。因此,如果要将所有文件(包括隐藏文件)从一个目录复制到现有目录,则可以:cd [source dir]
, cp . [path to destination dir, with no trailing slash]
。
cp -R t1/ t2
源目录上的尾斜杠会稍微改变语义,因此它会复制内容,但不会复制目录本身。它还避免了Bertrand的答案存在的遍历和不可见文件的问题(复制t1/*
丢失的不可见文件,复制't1 / * t1 /.*'复制了t1 /。和t1 / ..,这是您不想要的)。
$ mkdir t1
$ mkdir t2
$ touch t1/one
$ touch t1/two
$ touch t1/.three
$ cp -R t1/ t2
$ ls t2/
t1
(对不起,注释中没有任何代码格式,粘贴版本为pastebin.com/yszSxV6G的可读版本)
对于某个目录内部,这将是完整的,因为它将所有内容从“ folder1”复制到某个目录内的新目录“ folder2”。
$(pwd)将获取当前目录的路径。
请注意folder1后面的点(。),以获取folder1内的所有内容
cp -r $(pwd)/folder1/. $(pwd)/folder2
cp
问题可以被视为bash
问题,这是一种编程语言。我从未见过关于关闭文件复制的Python问题。