ubuntu/bash 下递归重命名文件和目录 [英] Rename files and directories recursively under ubuntu /bash

查看:30
本文介绍了ubuntu/bash 下递归重命名文件和目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将所有包含特殊"一词的文件和目录重命名为常规".它应该保持区分大小写,这样特殊"就不会变成常规".

I want to rename all files and directories that contain the word "special" to "regular". It should maintain case sensitivity so "Special" won't become "regular".

如何在 bash 中递归执行此操作?

How can i do this in bash recursively?

推荐答案

试试这个(需要 bash --version >= 4):

Try doing this (require bash --version >= 4):

shopt -s globstar
rename -n 's/special/regular/' **

当您的测试正常时移除 -n 开关

Remove the -n switch when your tests are OK

还有其他同名工具可能有也可能没有能够做到这一点,所以要小心.

如果您运行以下命令 (GNU)

If you run the following command (GNU)

$ file "$(readlink -f "$(type -p rename)")"

你会得到类似

.../rename: Perl script, ASCII text executable

且不包含:

ELF

那么这似乎是正确的工具 =)

then this seems to be the right tool =)

如果没有,将其设为 DebianUbuntu 等衍生产品的默认设置(通常已经如此):

If not, to make it the default (usually already the case) on Debian and derivative like Ubuntu :

$ sudo update-alternatives --set rename /path/to/rename

(将 /path/to/rename 替换为 perl 的 rename 命令的路径.

(replace /path/to/rename to the path of your perl's rename command.

如果您没有此命令,请搜索您的包管理器进行安装或 手动操作

If you don't have this command, search your package manager to install it or do it manually

最后但同样重要的是,这个工具最初是由 Perl 的父亲 Larry Wall 编写的.

Last but not least, this tool was originally written by Larry Wall, the Perl's dad.

这篇关于ubuntu/bash 下递归重命名文件和目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆