我需要在命令行上通过 ftp 下载一系列文件。我正在下载的服务器的文件夹结构如下所示:
/path/to/file1/abcfile111def
/path/to/file1/abcfile222def
/path/to/file1/abcfile187def
/path/to/file1/abcfile139def
/path/to/file1/abcfile209def
我知道可以用于mget
下载多个文件以及通配符的潜力,但我需要对下载应用一些搜索条件。
搜索条件是,从服务器连接时所在的给定目录中,我想搜索该文件夹中的所有子目录并查找文件并应用查找以下字符串的搜索条件:
file100,file101,file102....file199
字符串条件将查找与此数字范围匹配的文件。我该怎么做呢?
如果只能通过编程才能解决问题,那么我对 python 非常精通,所以在寻找替代方案方面不会有问题。
答案1
我使用 bash 代码制作了这个解决方案:
for i in /path/to/file1/*/*;
do
if [[ ${i##*[[:alpha:]]} =~ [[:digit:]][[:digit:]][[:digit:]] ]]
then
echo $(realpath "$i")
fi
done
这与文件名中的三个数字 (101, 102, 103..., 199) 匹配。将echo
命令替换ftp
为每个匹配文件的命令。请使用echo
命令进行测试,正常后运行。
路径很重要,/path/to/file1/*
因为它包含带有子目录的子目录,因此不会搜索,因此搜索路径应该是/path/to/file1/*/*
.请相应地改变。