目前,我正在运行这两个命令来创建目录的快速备份。有没有办法将这两个命令合二为一,以便我在一个命令中复制和重命名新目录?
#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)
ilk*_*chu 43
你应该能够做到
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
Run Code Online (Sandbox Code Playgroud)
但是,如果目标目录已经存在,这会将源路径的最后一部分附加到目标路径,创建
/tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App
,然后复制其中的其余部分。
为了防止这种情况,请使用/tf/Custom_App/.
作为源。当然,在这种情况下rm -r /tf/Custom_App_backups/Custom_App_2017-12-21
,如果您不希望在复制后将旧文件放在那里,您可能希望首先这样做。
/some/dir
和/some/dir/.
之前在cp 中讨论过的区别在. (dot) 或 .. (dot dot) 是源目录
或者,您可以这样做:
mkdir /tf/Custom_App_backups/Custom_App_2017-12-21 # prepare the target location
cp -R /tf/Custom_app/. /tf/Custom_App_backups/Custom_App_2017-12-21 # copy only the contents
Run Code Online (Sandbox Code Playgroud)
这将允许您预先指定您的自定义位置。另请注意,它使用后缀/.
“这”允许您仅复制内容并排除其包含的文件夹 - 在本例中为文件夹Custom_app
。