linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...
復制時主動創立不存在的子目錄
在 Linux 中,能夠應用 cp 命令的 --path 選項指定在復制的時候主動創立不存在的子目錄。
例如執行上面的命令:
$ cp --path java/com/server/Service.java target/
如果 target 目錄下不存在 java/com/server/ 這一串子目錄,cp --path 命令會主動創立 java/com/server/ 這一串子目錄,而后把文件復制到對應的子目錄下。
留神:在下面命令中,target 目錄必須存在,能力復制。cp --path 命令只會主動創立源文件門路蘊含的子目錄,不會主動創立所給的目標目錄。
從行為來看,cp --path java/com/server/Service.java target/ 命令相似于上面的命令:
$ mkdir -p target/java/com/server/
$ cp java/com/server/Service.java target/java/com/server/
mkdir -p 命令示意遞歸創立一串子目錄。
–parents 選項
查看 man cp 的闡明,外面沒有提到 --path 選項,但實際上能夠應用這個選項。它應該是被廢除了。
應用該選項復制報錯時,提醒的選項名是 --parents,應該是被 --parents 選項所代替:
$ cp --path java/com/server/Service.java not_exist/
cp: with --parents, the destination must be a directory
Try 'cp --help' for more information.
能夠看到,cp --path 命令復制報錯,提示信息說是應用 --parents 時,指標文件名必須是一個曾經存在的目錄。
可見,--path 被當成 --parents 來解決。
查看 GNU cp 的在線幫忙鏈接 https://www.gnu.org/software/…,對 --parents 選項闡明如下:
–parents
Form the name of each destination file by appending to the target directory a slash and the specified name of the source file.
The last argument given to cp must be the name of an existing directory. For example, the command:
cp --parents a/b/c existing_dir
copies the file a/b/c to existing_dir/a/b/c, creating any missing intermediate directories.
即,當被復制的源文件門路蘊含子目錄名,--parent 選項會在目標目錄下主動創立不存在的子目錄。目標目錄自身必須曾經存在。
因為在 cp 命令的幫忙信息中曾經找不到 --path 選項的闡明,倡議不再應用這個選項,改用 --parents 選項。
只復制新批改過或者不存在的文件
在 Linux 中,有時候會遇到這樣一個問題場景:應用 cp 命令復制一個很大的目錄(該目錄底下有很多子目錄或者文件),然而復制到中途時,遇到異樣,導致進行復制,須要從新復制。
這個時候不心愿復制曾經復制過的文件,而是只復制還沒有復制過的文件。那么能夠應用 cp 命令的 -u 選項。
查看 man cp 對 -u 選項闡明如下:
-u, –update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
即,只有源文件新于指標文件、或者指標文件不存在時,cp -u 命令才會復制這個文件。
總結
以上是生活随笔為你收集整理的linux cp 目录不存在自动创建,关于linux:Linux技巧cp命令自动创建不存在的目录和只复制修改的文件...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “蠢蠢微尘里”上一句是什么
- 下一篇: Linux找头文件规则,linux 头文