我使用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?*