В терминале Ubuntu попробуйте использовать это с помощью wget
wget -r -i http://XXXX/XXX/XX
. Но если у вас есть определенный тип файла, тогда
wget -r -l1 -A.txt https://xxxx/pub/data/xx/products/xx/2012/
.txt является расширением файла
Я построил, за исключением того, что для этого (sry, что я еще не смог добавить документацию).
У меня есть папка, такая как:
$ ls
a b c d
[d3 ] Ввод except b d даст вам a и c $ except b d
ac
Теперь вы можете передать это на rm.
except b d | xargs -0 rm
Это может быть трудно помните, так почему бы просто не построить сценарий поверх, кроме, называемый rm-except:
#!/usr/bin/env bash
except "$@" | xargs -0 rm
Аналогично легко ls-except:
#!/usr/bin/env bash
except "$@" | xargs -0 ls
В качестве альтернативы extglob (хотя это очень хороший ответ, и каждый должен иметь shopt -s extglob globstar в своем .bashrc), вы можете использовать глобальную переменную $ GLOBIGNORE. Предположим, вы хотите получить каждый файл, кроме «foo.txt» и «bar baz.txt»:
GLOBIGNORE=foo.txt:'bar baz.txt'
... однако это приведет к включению опции оболочки dotglob, что означает что * будет соответствовать файлам, начинающимся с точки (которые обычно скрыты). Таким образом, вам понадобятся две команды:
GLOBIGNORE=foo.txt:'bar baz.txt'
shopt -u dotglob
Поскольку это глобальная переменная, она будет влиять на каждый глобус, который вы используете, до тех пор, пока $ GLOBSTAR не будет отменен ни путем выхода из системы, ни с помощью
GLOBIGNORE=
Он также будет работать только с литеральными строками, переданными переменной. Вы можете понять, что я имею в виду, установив $ GLOBIGNORE и посмотрев разницу между этими командами:
printf '%s\n' *
printf '%s\n' ./*