【发布时间】:2019-05-30 04:48:34
【问题描述】:
我只需要从不同的目录下载 rpm 文件。这是我的代码 -
#!/usr/bin/env bash
# Download Only rpm file from certain directory.
# wget
# -4 = only ipv4
# -A = accept list
# -r = reccursively
# -R = reject list
# -c = continue
# -e = execute command
# --exclude-directories = take list
# Create a directory
mkdir mrepo
# Enter into the directory
cd mrepo
# RPM URL
repo_url="http://download.virtualbox.org/virtualbox/"
# Repo rpm
repo_download=('5.2.20' '5.2.22' '6.0.0')
# Exclude directories
exclude_dir=('*_Beta')
# Download all rpm packages
for i in "${repo_download[@]}"; do
echo $i/
echo ${repo_url}/$i/
# wget -A rpm -rc -e robots=off --reject "index.html*" ${repo_url}/$i/
wget -A zip -rc -e robots=off --reject "index.html*" ${repo_url}/$i/
done
# Tar the downloaded rpm
tar -cvzf missingrepo.tgz --exclude=./*.sh .
我的目标是
- 仅下载 rpm 文件
- 来自特定目录;所以我创建了这些目录的列表并将其传递给
for循环。显然,它似乎工作。但实际上不是。 - 它被执行了,它进入了想要的目录。忽略此版本之前的所有目录。在 5.2.20 并从该目录下载 rpm 文件。但是当它完成该目录的下载时,它对所有目录执行
wget命令并开始从所有目录下载 rpm 文件。 :-( -
尝试使用
--exclude-directories=排除不必要的子目录。但是--exclude-directories参数不起作用。 PS:为了快速执行和测试目的,我使用zip文件下载。wget -A zip -rc -e robots=off --reject "index.html*" --exclude-directories=exclude_dir ${repo_url}/$i/
任何帮助都会非常有帮助!!
【问题讨论】:
标签: bash shell url directory wget