Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wget 在linux中通过删除url参数重命名文件_Wget_Linux_File_Shell_File Rename_Batch Rename - Fatal编程技术网

Wget 在linux中通过删除url参数重命名文件

Wget 在linux中通过删除url参数重命名文件,wget,linux,file,shell,file-rename,batch-rename,Wget,Linux,File,Shell,File Rename,Batch Rename,我使用下载了一些文件,文件格式如下: test.zip?AWSAccesskeyId=XXXXXXX&Expires=00000000&Signature=ZZZZZZZZZZ 有没有办法通过删除URL参数来正确重命名这些文件。还有什么方法可以从wget下载具有适当名称(不带URL参数)的此类文件 我使用以下命令尝试了mmv: mmv "*.zip*" "#1.zip" 但是我找不到任何方法来安装mmv。我正在使用CentOS 6。所以,除了这个,请建议其他任何方式 for

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

test.zip?AWSAccesskeyId=XXXXXXX&Expires=00000000&Signature=ZZZZZZZZZZ
有没有办法通过删除URL参数来正确重命名这些文件。还有什么方法可以从
wget
下载具有适当名称(不带URL参数)的此类文件

我使用以下命令尝试了
mmv

mmv "*.zip*" "#1.zip"
但是我找不到任何方法来安装
mmv
。我正在使用CentOS 6。所以,除了这个,请建议其他任何方式

for i in `ls *.zip?*`; do echo $i | cut -f 1 -d \? | xargs -n1 mv $i ; done
很抱歉,现在懒得检查名称中的空格。无法测试。我现在还不能访问基于bash的系统

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

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

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

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