当我使用
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 方式是什么?
目前,我正在运行这两个命令来创建目录的快速备份。有没有办法将这两个命令合二为一,以便我在一个命令中复制和重命名新目录?
#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
Run Code Online (Sandbox Code Playgroud) 我试图了解..(双点)的性质。它似乎指向不同的目标,具体取决于您访问它的方式。
例子:-
/outer/
middle/
inner/
inner --> ./middle/inner/
Run Code Online (Sandbox Code Playgroud)
现在,/outer/middle/inner/..导致/outer/middle/,但如果我通过符号链接访问它,则/outer/inner/..导致/outer/. ..这里似乎有两种不同。
究竟是..什么?符号链接?硬链接?还是根据访问目录时的路径动态生成的?或者我对符号链接的理解是错误的。
编辑:
其他相关观察
/outer/
middle/
file
inner/
f --> ./../file
inner --> ./middle/inner/
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试通过/outer/inner/f它访问文件。但它不应该,因为/outer/inner/../file它不指向文件。该文件在/outer/middle/inner/... 这似乎与上面的行为相矛盾!?