FastNetMon

Sunday, 10 March 2013

Как перекрыть встроенную bash команду на бинарик?

Итак, используем bash и Debian 6.

Пробуем заменить встроенную команду cd на нечто свое:

type cd
cd is a shell builtin

Создаем файлик /usr/bin/cd
#!/bin/bash
echo "replace you ls"

Выдаем ему exec флаг:
chmod +x /usr/bin/cd 
Но даже после этого вызывается встроенная cd.

Хотя bash видит обе версии:

type -a cd
cd is a shell builtin
cd is /usr/bin/cd

Обходников два: alias cd=/usr/bin/cd или вызов прямым путем: /usr/bin/cd
Note: some shells (e.g., bash(1)) have a built-in time command that provides less functionality than the command described here. To access the real command, you may need to specify its pathname (something like /usr/bin/time).
Источник: man time.


No comments :

Post a Comment

Note: only a member of this blog may post a comment.