2015-10-26 160 views
0

假设我在/path/to/folder中有一个名为my_folder_old的文件夹,如何在同一目录中创建一个名为my_folder_new的重复项?Bash:复制+重命名文件夹

EDIT

而且如果my_folder_new已经存在,my_folder_old在第一和未取代的内部创建的。这是为什么发生?

+2

cp -rp/path/to/folder/my_folder_old/path/to/folder/my_folder_new check:http:// www。 cyberciti.biz/faq/copy-folder-linux-command-line/ – Noproblem

+0

发生这种情况的原因是,my_folder_new已创建。做相同的cp命令,它会看到新路径/ path/to/folder/my_folder_new /。要解决当前情况,请检查目录是否存在,并复制,如下所示:cp -frp/path/to/folder/my_folder_old/*/path/to/folder/my_folder_new/* – Noproblem

+0

好的,谢谢。如果你发布你的解决方案作为答案,我可以将其标记为接受:) – Manfredo

回答

3

教程复制文件,文件夹链接:link

手册cp命令:Link

cp -frp /path/to/folder/my_folder_old -T /path/to/folder/my_folder_new 

    -f, --force 
      if an existing destination file cannot be opened, remove it 
      and try again (this option is ignored when the -n option is 
      also used) 
    -p  same as --preserve=mode,ownership,timestamps 
    -R, -r, --recursive 
      copy directories recursively 
    -T, --no-target-directory 
      treat DEST as a normal file 

但如果my_folder_new已经存在,my_folder_old是第一,而不是取代内部创建的。这是为什么发生?

之所以会发生这种情况,是因为my_folder_new已经创建。执行相同的cp命令将会看到新路径,/ path/to/folder/my_folder_new/

+0

也许我们可以在'.bashrc'中创建一个函数,例如'dup/path/to/folder'来创建'folder_copy_n',其中'n'是复制的数量。该函数会查看'path/to /'来查看'folder_copy_ '是否已经存在。 – Foad