gpt4 book ai didi

linux - 复制 bash 目录后,在新目录中编辑文件名?

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:58 25 4
gpt4 key购买 nike

我目前正在解决 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 中的文件名?任何帮助表示赞赏!谢谢。

最佳答案

使用rename命令使用正则表达式重命名多个文件,试试下面

# 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 机器前..所以请测试,如果您发现任何错误,请告诉我。

关于linux - 复制 bash 目录后,在新目录中编辑文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com