scp
Расширеные маски файлов в zsh. Сортировка по времени доступа.
Лично я часто использую для различных задач сортировку по времени модификации в масках файлов.
Например:
Просмотреть скриншоты по маске ~/pics/desktop-200* отсортированные по времени модификации (самые новые, будут идти первыми).
$ feh ~/pics/desktop-200*(om)Что бы запомнить:
o от order - порядок
m от modification time - время модификации
Просмотреть последний скриншот
$ feh ~/pics/*(om[1])Залить последние четыре фотографии с мобилы на хостинг по scp
$ scp ~/photo/mobile/se_24/*(om[1,4]) core.org.ua:~/www/data/tmp/se_24/Почистить немного места в /tmp удалив пару самых старых подкаста
$ rm /tmp/echo.msk.ru/*(Om[1,2])PS
Подробнее о спецификаторах к маскам файлов можно узнать в man zshexpn в разделе Glob Qualifiers
$ PAGER=less LESS=-p'Glob Qualifiers' \man zshexpnДокачка с scp. Способы решения проблемы.
scp не поддерживает докачку файла. Таким образом, иногда, очень обидно, скачивая очередной большой файл, получать обрыв связи. Это можно решить несколькими способами:
1. Использовать rsync
$ alias scprsync="rsync --partial --progress --rsh=ssh"Правда, необходим rsync на удаленной стороне.
2. Использовать curl
$ curl -T filename -C - -u yourlogin sftp://example.net/~/filenameС alias'ом здесь сложновато, но написать простенькую функцию, думаю, не составит большого труда.
Ссылки:
http://panela.blog-city.com/resume_scp_after_interrupted_downloads_use_rsync.htm
http://www.linuxquestions.org/questions/linux-networking-3/scp-resume-aborted-download-290836/
Скрипт для временного поста файлов в интернет
Часто бывает что нужно временно выложить в интернет какой нибудь файл и дать ссылку для скачивания. Этот скрипт облегчает заливку файлов на сервер по ssh и выводит урл
Пример использования:
$ postit bin/postit bin/postit.html postit 100% 370 0.4KB/s 00:00 postit.html 100% 2060 2.0KB/s 00:00 http://remote.org.ua/tmp/postit http://remote.org.ua/tmp/postit.html
#!/bin/sh # by ramok (c) 2006 idea by nexus # upload files by ssh, and show url # change your settings hire SSH_URL=user@remote.org.ua:~user/www/data/tmp/ WWW_URL=http://remote.org.ua/tmp/ # try do not touch below Ж;-)) [ -z $1 ] && printf "Usage: `basename $0` file [file..]" 1>&2 && exit 1 scp $@ $SSH_URL echo $@ | sed -e 's|[^ /]*/||g' -e 's|\([^ /]*\)[ ]*|'${WWW_URL}'\1\n|g'

