当我使用
cp -R inputFolder outputFolder
Run Code Online (Sandbox Code Playgroud)
结果取决于上下文:
outputFolder
不存在,则创建,克隆的文件夹路径为outputFolder
.outputFolder
存在,则创建的克隆将是outputFolder/inputFolder
这太可怕了,因为我想创建一些安装脚本,如果用户错误地运行了两次,他将outputFolder
第一次创建,然后在第二次运行时所有的东西都将在outputFolder/inputFolder
.
cp
便携(例如 MINGW 没有rsync
发货)cp -R --parents
但这会重新创建一直向上到目录树的路径(因此克隆不会outputFolder
但是some/path/outputFolder
)--remove-destination
或者--update
如果 2 不改变任何东西,仍然将东西复制到outputFolder/inputFolder
有没有办法在不首先检查outputFolder
(如果文件夹不存在则......)或使用的情况下做到这一点rm -rf outputFolder
?
公认的、可移植的 UNIX 方式是什么?