我想重命名扩展,.tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files
因为.tar
我尝试了该命令
rename 's/\.tar?h=ocdist105&p=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files$/.tar/' *.tar?h=ocdist105&p=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files
但似乎不起作用。我有 550 个带有该扩展名的文件。有人能帮我吗?谢谢
答案1
您可能能够使用 find、exec 和 rename 来实现这一点。我确信它可以在 Ubuntu 上运行,而不需要任何特殊操作。
#!/bin/bash
find /path/to/files -name "*.tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files" -exec rename .tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files .tar {} \;
.css
这尚未经过测试,但应该可行。为了清楚起见,以下是尝试将扩展名重命名为.txt
例如时命令的样子。
#!/bin/bash
find /path/to/files -name "*.css" -exec rename .css .txt {} \;
使用
将以上内容放入一个文件中。赋予该文件可执行权限,然后运行它。
测试
您可以测试上述命令以查看结果,而无需通过-n
在后面添加来进行实际更改rename
。
#!/bin/bash
find /path/to/files -name "*.css" -exec rename -n .css .txt {} \;
答案2
cd
到你的文件夹并运行mmv '*.tar*' '#1.tar'
如果你没有安装 mmv,请运行sudo apt-get install mmv
答案3
和你的 shell都rename
将某些字符视为特殊字符。你应该正确地转义它们。
此命令应该完成以下工作:
rename 's/\.tar\?h\=ocdist105\&\=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files$/.tar/' *.tar\?h\=ocdist105\&\=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files
如果您想知道我是如何生成该命令的,只需知道,在处理此类问题时,制表符补全功能非常有用。