我正在解决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
中的文件名?任何帮助表示赞赏!感谢。
答案 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机箱前..所以如果你发现任何错误,请测试并告诉我。