命令行shell复制并以当前时间重命名文件夹

因为工作需要,前几天弄了一个自定义复制文件夹的功能,通过shell脚本实现。

shell脚本真的是一个很神奇的发明,可以用最少的代码做最多的事情,太赞了!

今天我要讲的是一个复制命令。

复制命令其实很简单“cp”复制,大家都知道。但是如果复制过去之后重命名文件或者文件夹,并且文件名包含当前时间,这要怎么做呢?


   cp -rf old copy_test/new_`date '+%Y%m%d_%H.%M.%S'`

cp:复制一个文件或文件夹

-r :递归持续复制,用于目录的复制行为;

-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;

old:是复制源的文件夹路径,因为我已经cd到该路径下了,所以不要前缀;

copy_test/new_date '+%Y%m%d_%H.%M.%S':是复制之后的文件夹路径,复制到copy_test文件夹下面的名为new_date '+%Y%m%d_%H.%M.%S'

注意:这里的new_date '+%Y%m%d_%H.%M.%S'并不是文件夹名字,而是日期的格式转换,文件夹名字叫“new_”加上当前日期被格式化之后的样子。最终结果是“new_20170918_10.03.19”,日期格式化的结果是“20170918_10.03.19”。

不难看出年月日时分秒的对应关系:

%Y:年;%m:月;%d:日;%H:时;%M:分;%S:秒;

其中格式就是自己想要什么格式就直接在里面添加就好了。

更多日期格式请参考:http://blog.csdn.net/shanliangliuxing/article/details/16821175

更多详细复制命令请参考:http://clin003.com/linux/cp-rf-2479/

你可能感兴趣的:(命令行shell复制并以当前时间重命名文件夹)