在bash中,我需要这样做:
取一个目录中的所有文件 将它们复制到现有目录中
我怎么做呢?我尝试了cp -r t1 t2 (t1和t2都是现有目录,t1中有文件),但它在t2中创建了一个名为t1的目录,我不想这样,我需要t1中的文件直接进入t2。我怎么做呢?
在bash中,我需要这样做:
取一个目录中的所有文件 将它们复制到现有目录中
我怎么做呢?我尝试了cp -r t1 t2 (t1和t2都是现有目录,t1中有文件),但它在t2中创建了一个名为t1的目录,我不想这样,我需要t1中的文件直接进入t2。我怎么做呢?
当前回答
正确的选项应该是-T。与-r一起用于递归复制。
$ cp -r -T t1 t2
其他回答
对于在某些目录内,这将使用完整,因为它复制所有内容从“folder1”到新目录“folder2”在某些目录内。
$(pwd)将获取当前目录的路径。
注意folder1后面的点(.)表示folder1内的所有内容
cp -r $(pwd)/folder1/. $(pwd)/folder2
cp dir1/* dir2
或者如果dir1中有目录,也想复制
cp -r dir1/* dir2
假设t1是包含文件的文件夹,t2是空目录。你想要的是这样的:
sudo cp -R t1/* t2/
请记住,对于第一个例子,t1和t2必须是完整路径,或相对路径(基于您所处的位置)。如果你愿意,你可以导航到空文件夹(t2)并这样做:
sudo cp -R t1/* ./
或者你可以导航到files (t1)文件夹,这样做:
sudo cp -R ./* t2/
注意:*号(或通配符)代表所有文件和文件夹。-R标志表示递归(所有内容都包含在所有内容中)。
正确的选项应该是-T。与-r一起用于递归复制。
$ cp -r -T t1 t2
cp -R t1/ t2
源目录上的尾随斜杠稍微改变了语义,因此它复制了内容,但不复制目录本身。它还避免了通配符和不可见文件的问题,Bertrand的答案(复制t1/*会遗漏不可见文件,复制' t1/* t1/。*'复制t1/。和t1 / . .这是你不想要的)。