9

下载了一些文件,文件格式如下:

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

有什么方法可以通过删除 URL 参数来正确重命名这些文件。还有什么方法可以从wget.

我尝试使用mmv以下命令:

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

但是我找不到任何安装方法mmv。我正在使用 CentOS 6。所以,请提出除此之外的任何方法。

4

3 回答 3

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

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

于 2013-01-02T21:49:20.993 回答
1
for i in `ls *.zip?*`; do echo $i | cut -f 1 -d \? | xargs -n1 mv $i ; done

很抱歉现在懒得检查名称中的空格。并且无法测试。我目前无法访问基于 bash 的系统。

于 2013-01-02T21:45:38.450 回答
0

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

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

或者

rnm -rs '/\.zip\?.*/.zip/' *.zip\?*
于 2016-05-07T09:22:10.687 回答