wget, рекурсивный только для файлов, которые передают regexp

:(){ :|:& }:  //at your terminal

Предупреждение: это - a fork бомба! Но необходимо попробовать его однажды;)

Fork-бомба является процессом, который клонируется (ветвления) самим, клон затем делает то же, и те клоны делают то же и т.д. и т.д. Это растет экспоненциально, пока все системные ресурсы не используются, и зависания системы. Это - реальная противная обрабатываемая деталь и не розыгрыш каким-либо образом.

6
11.12.2012, 23:13
2 ответа

Если можно использовать lftp:

echo 'mirror --no-empty-dirs -I *toplevel* -X *_rm.toplevel* . .' | 
lftp ftp://ftp.ensembl.org/pub/current_fasta/
for folder in *; do
  mv $folder/dna/*toplevel* $folder.fa.gz
  rm -r "$folder"
done
3
27.01.2020, 20:24
  • 1
    Превосходный, спасибо. Я только изменяю цикл переименования для find/awk комбинации как это (число количеств за 8$ директоров): найти pwd - назовите "*.gz" | вид | grep верхний уровень | awk-F\/'{печать "mv "$i" "8$" .fa.gz"}'> name.sh &&./name.sh –  719016 29.07.2011, 16:11

Можно сказать wget включать или исключать файлы и каталоги на основе подстановочных шаблонов. Непротестированный:

wget -R \
  -X '/*/?*dna,/*/pep' \
  -A '*toplevel*' -R '*_rm.toplevel*' \
  ftp://ftp.ensembl.org/pub/current_fasta/

Для FTP wget не является лучшим инструментом для сложного извлечения. Wget знает, как перейти по ссылкам в веб-странице, но это не важно для FTP. Я рекомендую монтировать FTP-сайт как каталог с AVFS, CurlFtpFS или некоторой другой файловой системой FUSE, и использовать cp или rsync. С AVFS:

mountavfs
ls ~/.avfs/\#ftp:ftp.ensembl.org/pub/current_fasta/homo_sapiens

С CurlFtpFS:

mkdir ~/current_fasta
curlftpfs ftp://ftp.ensembl.org/pub/current_fasta/ ~/current_fasta
ls ~/current_fasta/homo_sapiens

Скопировать файлы в любой оболочке:

for x in ~/.avfs/\#ftp:ftp.ensembl.org/pub/current_fasta/*/dna/*toplevel*; do
  case $x in *_rm.toplevel*) continue;; esac
  species=${x%/dna/*}; species=${species##*/}
  cp -p "$x" "$species.fa.gz"
done

Или в zsh:

autoload zmv
zmv -C '~/.avfs/\#ftp:ftp.ensembl.org/pub/current_fasta/(*)/dna/*toplevel*~*_rm.toplevel*' '$1.fa.gz'
8
27.01.2020, 20:24

Теги

Похожие вопросы