2015-10-26 158 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