复制bash目录后,在new directoy中编辑文件名?

时间:2015-10-13 15:41:59

标签: linux bash shell scripting

我正在解决bash shell中的问题,将目录复制到新目录,当你检查新目录时,它会更改它复制的文件的名称。不确定如何准确地说出来,所以我将展示它应该输出的内容:

-------$ ls -a myproject/
 ./ ../ file1 file2.c file3.txt .this_is_a_hidden_file
 -------$ bkup myproject mybackup
 -------$ ls -a mybackup
 ./ ../ file1-BACKUP file2-BACKUP.c file3-BACKUP.txt

所以会发生的是脚本bkup中的第二个参数复制第一个参数中的内容,然后编辑参数#1文件的名称以在词干和扩展名之间添加“-BACKUP” (例如,在file2.c之间制作file2-BACKUP.c

我已经找到了如何使用cp -a sourceDir./ destinationDir复制目录但是如何编辑destinationDir中的文件名?任何帮助表示赞赏!感谢。

1 个答案:

答案 0 :(得分:1)

使用重命名命令使用正则表达式重命名多个文件,请尝试以下

# change directory to the destination folder
$ cd destinationDir

# rename all files 
# -n flag will only display how files will be renamed 
# once satisfied then remove the -n flag from below command and it will actually rename all files
$ rename -n -v 's/(.+?)(\.[^.]*$|$)/$1-BACKUP$2/' *

您可以参数化该命令并将其包含在您的脚本中(bkup) 我不在我的Linux机箱前..所以如果你发现任何错误,请测试并告诉我。