通过用另一个模式替换模式来递归重命名存储库和文件名
Rename recursively repository and file names by replacing a pattern by another
我想递归地重命名特定目录下包含给定模式的所有存储库和文件名。
我想我使用以下命令找到了一个潜在的解决方案 here:
find /your/target/path/ -execdir rename 's/special/regular/' '{}' \+
不过我好像没有正确的rename
命令。
我安装了 Perl Rename 包,但我仍然没有可用的基于 Perl 的 rename
命令。我该怎么做才能使用这个命令?
这个 rename
解决方案是否有替代解决方案?
假设我有以下存储库和文件:
BOOK1/
BOOK1/BOOK1_summary.txt
BOOK1/BOOK1_chapter1/BOOK1_chapter1.txt
我想将所有出现的 BOOK1 重命名为 BOOK-01 在存储库和文件名中:
BOOK1-01/
BOOK1-01/BOOK1-01_summary.txt
BOOK1-01/BOOK1-01_chapter1/BOOK1-01_chapter1.txt
您可以使用可以从 this link.
下载的 rename
PERL
实用程序
find BOOK1 -depth -exec rename -n 's/^(.*)(BOOK1)(.*)$/BOOK1-01/' {} \;
干-运行输出
rename(BOOK1/BOOK1_summary.txt, BOOK1/BOOK1-01_summary.txt)
rename(BOOK1/BOOK1_chapter1/BOOK1_chapter1.txt, BOOK1/BOOK1_chapter1/BOOK1-01_chapter1.txt)
rename(BOOK1/BOOK1_chapter1, BOOK1/BOOK1-01_chapter1)
rename(BOOK1, BOOK1-01)
在验证 dry-运行 结果后,从 rename
中删除 -n
选项..
实际输出
ls -R BOOK1-01/ # Used a recursive listing here.
BOOK1-01/:
BOOK1-01_chapter1 BOOK1-01_summary.txt
BOOK1-01/BOOK1-01_chapter1:
BOOK1-01_chapter1.txt
注意: find 的 -depth
选项是这里的关键。 find manpage
表示它在处理目录本身之前处理每个目录的内容。
我想递归地重命名特定目录下包含给定模式的所有存储库和文件名。
我想我使用以下命令找到了一个潜在的解决方案 here:
find /your/target/path/ -execdir rename 's/special/regular/' '{}' \+
不过我好像没有正确的rename
命令。
我安装了 Perl Rename 包,但我仍然没有可用的基于 Perl 的 rename
命令。我该怎么做才能使用这个命令?
这个 rename
解决方案是否有替代解决方案?
假设我有以下存储库和文件:
BOOK1/
BOOK1/BOOK1_summary.txt
BOOK1/BOOK1_chapter1/BOOK1_chapter1.txt
我想将所有出现的 BOOK1 重命名为 BOOK-01 在存储库和文件名中:
BOOK1-01/
BOOK1-01/BOOK1-01_summary.txt
BOOK1-01/BOOK1-01_chapter1/BOOK1-01_chapter1.txt
您可以使用可以从 this link.
下载的rename
PERL
实用程序
find BOOK1 -depth -exec rename -n 's/^(.*)(BOOK1)(.*)$/BOOK1-01/' {} \;
干-运行输出
rename(BOOK1/BOOK1_summary.txt, BOOK1/BOOK1-01_summary.txt)
rename(BOOK1/BOOK1_chapter1/BOOK1_chapter1.txt, BOOK1/BOOK1_chapter1/BOOK1-01_chapter1.txt)
rename(BOOK1/BOOK1_chapter1, BOOK1/BOOK1-01_chapter1)
rename(BOOK1, BOOK1-01)
在验证 dry-运行 结果后,从 rename
中删除 -n
选项..
实际输出
ls -R BOOK1-01/ # Used a recursive listing here.
BOOK1-01/:
BOOK1-01_chapter1 BOOK1-01_summary.txt
BOOK1-01/BOOK1-01_chapter1:
BOOK1-01_chapter1.txt
注意: find 的 -depth
选项是这里的关键。 find manpage
表示它在处理目录本身之前处理每个目录的内容。