免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8416 | 回复: 15
打印 上一主题 下一主题

如何用cp备份多个文件成指定的名字? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-12 21:31 |只看该作者 |倒序浏览
例如有若干以"*.txt"结尾的文件,现在打算将其全部备份为名称为"*_bak.txt",需要说明的是在同一文件目录下进行此操作,请问有没有简单的命令可以实现呢?

(就是图形界面下同一目录下简单的复制,粘贴操作,操作后的文件自动更改为带文件名后缀*(copy).ext的文件。)

cp的话如何才能在同一目录下备份多个文件并改名呢。多谢。

论坛徽章:
0
2 [报告]
发表于 2011-05-12 21:48 |只看该作者
  1. ls *.txt|awk -F. '{system("cp "$0" "$1"_bak."$2)}'
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-05-12 21:49 |只看该作者
如果有特殊文件名,比如名字里面的.不止一个,那么你再改改语句

论坛徽章:
0
4 [报告]
发表于 2011-05-12 21:57 |只看该作者
这样吧
  1. ls *.txt|awk -F. '{T=$0;S=$NF;NF--;system("cp "T" "$0"_bak."S)}' OFS="."
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-05-12 22:01 |只看该作者
回复 2# 网中淫

谢谢帮助,你的代码确实完成了我的要求。

不过我在man cp的时候发现了下面两段,看着样子是可以实现类似的功能,就是不知道如何实现。
  1.        --backup[=CONTROL]
  2.               make a backup of each existing destination file
复制代码
  1.        The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.  The version control method may  be  selected  via  the
  2.        --backup option or through the VERSION_CONTROL environment variable.  Here are the values:

  3.        none, off
  4.               never make backups (even if --backup is given)

  5.        numbered, t
  6.               make numbered backups

  7.        existing, nil
  8.               numbered if numbered backups exist, simple otherwise

  9.        simple, never
  10.               always make simple backups

  11.        As  a  special  case, cp makes a backup of SOURCE when the force and backup options are given and SOURCE and DEST are the same name
  12.        for an existing, regular file.
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
6 [报告]
发表于 2011-05-12 22:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
7 [报告]
发表于 2011-05-13 00:39 |只看该作者
回复 1# jovial15


    可以试试sed,

sed -i.bak '' *

论坛徽章:
0
8 [报告]
发表于 2011-05-13 09:47 |只看该作者
ls *.txt|awk -F. '{print "cp " $0 " "$1"_bak."$2|"/bin/bash"}'

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
9 [报告]
发表于 2011-05-13 10:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2011-05-13 10:46 |只看该作者
回复 9# zooyo


    我只是发个帖子而已,没说比2楼的方法好啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP