假设我有如下文件夹结构
01. folder1
|- 1. video1
|- 2. video2
|- 3. video3
02. folder2
|- 1. photo1
|- 2. photo2
03. folder3
|- 1. doc1
|- 2. doc2
现在我想重命名这些文件如下
01 folder1
|- 01 1. video1
|- 01 2. video2
|- 01 3. video3
02 folder2
|- 02 1. photo1
|- 02 2. photo2
03 folder3
|- 03 1. doc1
|- 03 2. doc2
这意味着我想先添加3 字符(或文件夹名称中的任何字符)在其自己的文件名之前(如批量重命名)。
那么像上面那样自动重命名的命令/脚本是什么?
答案1
- 学习
man find
和(你甚至可以用 Google 搜索例子) - 让它生成一个用引号[1]括起来的“路径”列表,其中包含您想要更改的文件。
- 然后使用文本编辑器或继续破解查找参数,在单独的第二列中创建要更改的名称,
mv
然后在每行开头添加(注意空格)- 现在要么将列表保存为文本文件并执行
source name-of-file
,要么将其通过管道传输到bash
祝你好运。
[1] 由于文件和文件夹名称中有空格
答案2
我找到了一个与此问题非常相似的python脚本。所以我根据需要修改了脚本。
这解决了我正在寻找的确切问题。
python3 rename.py "/parent/dir/path"
# filename is rename.py(save the file)
import shutil
import os
import sys
dr = sys.argv[1]
for root, dirs, files in os.walk(dr):
for f in files:
shutil.move(root+"/"+f, root+"/"+root.split("/")[-1][0:3]+f)
如果显示权限问题,则运行
sudo chmod +x rename.py