bash - 使用重命名递归地将前缀附加到所有文件
问题描述
我正在尝试使用以下方法将前缀00_递归地附加到我的所有pdf文件中:
find . -name "*.pdf" | rename 's/^/00_/' *
但是,通过这种方式,我将前缀附加到路径。用rename递归修改文件名的表达式是什么?
解决方案
默认情况下,重命名会修改整个路径。-d
通过传递标志可以单独考虑文件名。另请注意,*
glob 将匹配当前目录中的所有文件,而不仅仅是您传递给stdin
. 因此,要00_
添加到文件名,请使用:
find . -name "*.pdf" | rename -d 's/^/00_/'
您还可以添加-n
标志来进行试运行,其中打印重命名而不执行。
推荐阅读
- json - Ionic 3 按特色属性对管道 JSON 进行排序
- python - 交换 2+ 字串中的字母
- python-3.x - 无法返回熊猫数据框中位置 0-3 中的值的索引
- javascript - Javascript解释器相关
- python - 如何访问和打印存储在字典中的类对象?
- python - 使用 Python 将最新版本的文件从网站下载到特定位置
- angular - Angular 6 表单模板错误:'没有将“exportAs”设置为“ngForm”的指令'
- r - R googlesheets gs_ls() 返回内容类型错误
- python - 可以将带有 os.system 的 Python 脚本转换为独立的 exe 吗?
- http - 只返回多个get参数请求中的第一个参数