这个问题与重命名 Linux 系统目录中的文件有关,其中受影响的文件以这种通用格式出现:
index.html?p=155
index.html?page_id=10
index.html?author=2&paged=5
index.html?feed=rss2&tag=search-engine
index.html?tag=social-media
可能有一个 shell 级别的“重命名”命令,我可以使用它来将目录中每个文件中的问号 (?) 替换为下划线 (_)?
提前感谢您提供任何建议或信息!
最佳答案
我更喜欢 rename
命令自己,尽管有时自己动手做 for
循环可以更有针对性。
注意:重命名
需要一个sed表达式作为更改的参数,文件名作为最后一个参数。正确的使用调用是:
rename 's/\?/_/' index*
因为 ?
在未被 \
转义时表示前面字符的 0 或 1。
这也更容易投入到可以递归操作的 find
命令中,等等:
find . -name index.html* -exec rename 's/\?/_/' {} +
关于regex - 重命名 linux 目录中文件的最佳过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538304/