Я часто делаю что-то вроде этого:

tail -f logs/`ls -rt logs | tail -1`/debug.log

Я хотел бы иметь макрос для ls -rt <some_dir> | tail -1 , но он должен работать в контексте текущей командной строки (<some_dir> извлекается из текущей командной строки). Есть способ сделать это?

Что-то вроде:

tail -f logs/$(LAST)/debug.log

2 ответа2

1

Используя $0 вы получите текущую команду, а $* - параметры. Попробуйте echo $0 $* чтобы увидеть, поможет ли это. Очевидно, что вы можете назначить их другой переменной, если это необходимо.

1

Если вы не привязаны к определению <some_dir> в подкоманде , вы можете добиться того же эффекта с помощью ...

tail -f `ls -drt logs/* | tail -1`/debug.log

-d заставляет ls включать полные пути совпадений, но вам нужен завершающий символ /* чтобы он возвращал файлы в каталоге, а не в самом каталоге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .