通过删除linux中的url参数来重命名文件



我使用wget下载了一些文件,这些文件的格式如下:

test.zip?AWSAccesskeyId=XXXXXXX&Expires=00000000&Signature=ZZZZZZZZZZ

有没有办法通过删除URL参数来正确重命名这些文件。还有什么方法可以从wget下载这样的文件,只要有合适的名称(没有URL参数(。

我用以下命令尝试了mmv

mmv "*.zip*" "#1.zip"

但是我找不到任何方法来安装mmv。我使用的是centos6。所以,除了这个,请提出其他任何方法。

for file in *.zip?*; do mv "$file" "${file%%?*}"; done

据我所知,wget没有告诉它不要在本地文件名中包含查询字符串的选项。可以使用-O选项指定明确的文件名,并修复驱动程序脚本以删除查询字符串本身。

for i in `ls *.zip?*`; do echo $i | cut -f 1 -d ? | xargs -n1 mv $i ; done

很抱歉现在懒得检查名称中的空格。无法进行测试。此时此刻,我无法访问基于bash的系统。

如果您有g++ >=4.9.2,那么您可以安装rnm并执行:

rnm -ns '/n/.zip' *.zip?*
# /n/ expands to file name without extension.

rnm -rs '/.zip?.*/.zip/' *.zip?*

相关内容

  • 没有找到相关文章