Rsync и двоеточие

При попытке синхронизировать при помощи rsync каталог или файл, в имени которого содержится двоеточие, можно получить ошибку:

~> rsync -av 2015-07-31_01:32:46/ newdir/
ssh: Could not resolve hostname 2015-07-31_01: hostname nor servname provided, or not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]

Все, что находится до двоеточия считается именем или адресом хоста и не резолвится.

Решить проблему можно тремя способами:

— указать полный путь к файлу или каталогу;
— добавить перед файлом или каталогом точку-слеш (./);
— добавить перед файлом или каталогом в одинарных кавычках pwd и слеш (`pwd`/).

~> rsync -av /home/username/2015-07-31_01:32:46/ newdir/
~> rsync -av ./2015-07-31_01:32:46/ newdir/
~> rsync -av `pwd`/2015-07-31_01:32:46/ newdir/

То же самое относится и к scp.


Теги: , , , , , ,

Единорог, какаяющий радужками

unicornlike

Хотите радугу в консоли? Нет ничего проще:

~> gem install lolcat
~> cd /usr/ports/*/cowsay && make install clean
~> rehash
~> fortune | cowsay -f turtle | lolcat

Конечно, если у вас вдруг не установлен Ruby и gem, то придется чуть дольше повозиться.

Цитата о шоколаде как раз в тему. Розетка отменила мои заказы, сделал заказы в Соколе, сэкономил гривен 40, купил себе шоколадку Classic Wheels =) Мелочь, а приятно))


Теги: , , , , , , , , , ,

Colored less, grep and ls

В одной старой заметке я рассказывал, как раскрасить вывод ls в tcsh (csh). Все работает хорошо до тех пор, пока вы не перенаправите вывод команды ls через пайп | другой команде, например less.

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

Раскрашиваем less и more (colored less and more)

less и more поддерживают отображение раскрашенного вывода, но чтобы они его отображали корректно, т.е. в раскрашенном виде, нужен ключ –R:

<command> | less -R
<command | more -R

Можно добавить в файл настроек .cshrc:

alias less less -R

less (он же more*) еще умеет отображать man в раскрашенном виде (по умолчанию, там есть раскрашивание). man использует more для отображения вывода:

     -P pager  Specify which pager to use.  By default, man uses ``more -s''.
               This option overrides the PAGER environment variable.

* убедитесь сами, less и more – один и тот же файл:

ls -laio /usr/bin/less /usr/bin/more

Для того, чтобы man был раскрашен в цвета, добавьте в .cshrc строки:

Читать остальную часть заметки »

Теги: , , , , , , , , , , , , , , , , , , , , ,

Поиск в файлах

Вопрос о том, как найти подстроку или строку в файле, поднимается часто и найти на него ответ довольно просто. Так, например, можно искать сторонний код во взломанных файлах:

find . -name "*.*htm*" -exec grep -i "iframe" {} \; -print
find . -name "*.*htm*" -exec grep -i "iframe" '{}' \; -print
find /home -name '*.htm*' -exec grep -H 'fromCharCode' \{\} \;

Так можно удалить из очереди postfix письма с определенным текстом (спам-рассылку, например):

find /var/spool/postfix/deferred/ -name "*" -exec grep -i "SOMESPAM" {} \; |\
awk -F / '{print $7}' | awk '{print $1}' | postsuper -d -

А как найти файлы, в которых определенная строка не встречается?

Можно так:

find . -name "*.html" -print0 | xargs -0 grep -c "string" | grep ":0" | cut -d : -f 1

где “string” – строка, которой в файлах нет.

cut просто отрезает имя файла от количества нулевых вхождений подстроки “string”, если кому-то по душе awk, используйте в пайпе:

awk -F : '{print $1}'

Теги: , , , , , , , , ,

csh in single mode on FreeBSD

Если вы любите оболочку csh и редактор ee (Easy Editor), возможно вы сталкивались со следующей проблемой. При загрузке в однопользовательском режиме (4 – single mode), требуется ввести путь к оболочке, по умолчанию это /bin/sh. Если вы вводите /bin/csh – он ругается на невозможность открыть /etc/termcap. Когда вы пытаетесь редактировать в редакторе ee какой-нибудь файл, текст на консоли выглядит как сплошное месиво.

Красная таблетка

Лечится это очень легко. Достаточно указать правильный тип терминала:

setenv TERM cons25

Все, теперь, даже несмотря на то, что терминал не подхватил настройки и украшательства из файла .cshrc, csh жив и вполне юзабелен.


Теги: , , , , , , , , , , , ,

Цветик-семицветик

Маленькое дополнение к статье о раскраске tcsh.

Если, после настроек цветов, нажать TAB, то файлы и каталоги выведутся раскрашенными, согласно наших настроек, и будут раскрашены определенные типы файлов (по названиям расширений). Но если просто набрать ls, ничего подобного не произойдет. Почему?

Все потому, что tcsh использует цвета из переменной LSCOLORS, а не LS_COLORS. Вместо ls можно использовать ls-F, встроенный в tcsh:

ls-F [-Option(s)] [file ...]
	       This built-in is just like `ls -F', but much faster.


Если ls-F вызывать с параметрами, он передаст их обычному ls:

ls-F passes its arguments to ls if it is given any switches,
so `alias ls ls-F' generally does the right thing.


Итак, добавляем алиас:

alias ls ls-F


и радуемся цветам 🙂


Теги: , , , , , , ,

Simon says? Cow says!

Говорит и показывает корова

cowsay – бесполезный 🙂 перловый скрипт, который выводит заранее напечатанный текст в виде ASCII-картинки говорящей или думающей коровы. И не только коровы, а любого персонажа из заготовленного набора.

Оригинальная корова:

~> set M="Hello, world\!"
~> cowsay $M
 _______________
< Hello, world! >
 ---------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Читать остальную часть заметки »


Теги: , , , , , , , , , ,