Вы не только столкнетесь с проблемами, если xargs
вызовет tar
дважды, вы также столкнетесь с проблемами, если ваши имена файлов содержат специальные символы, такие как символы новой строки.
Вам следует отказаться от использования xargs
и tar
и использовать find
с cpio
:
find $SOURCEDIR -mtime -1 -print0 | cpio --create -0 --verbose \
--format=ustar -O $ARCHIVE
ustar
предоставляет у вас есть файл tar, совместимый с POSIX.1, в $ ARCHIVE
.
Ctrl + R работает с ksh
в режиме emacs
( ksh -o emacs
или установить -o emacs
внутри ksh
), и, скорее всего, это была первая оболочка, которая его поддерживала. Только он не такой интерактивный, как в виджете zsh
или bash
или tcsh
i-search-back
.
В ksh
(оба ksh88
и ksh93
) вы набираете Ctrl + R текст
Return . И Ctrl + R Верните для повторного поиска с тем же текстом.
В режиме vi
вы можете использовать ?
для поиска назад и n
для следующего поиска.
Эта функция emacs
инкрементного поиска была добавлена в:
bash
/ readline
по крайней мере с июля 1989 года, поскольку эта функция уже упоминалась на usenet в то время , но, вероятно, не с самого начала, поскольку в версии readline
, поставляемой с zsh-1.0
, этого не было. zsh
с версии 2.0 в 1991 году после того, как редактор строк был переписан и больше не использовался readline
. tcsh
в V6.00.03, 21.10.91, но не привязан по умолчанию ( tcsh
некоторое время до этого имел другой механизм поиска на Meta-P хоть). ksh
: ksh
, скорее всего, была первой оболочкой Unix с режимом редактирования emacs
, написанным в 1982 году Майком Вичем (а также vi
Пэта Салливана с повторным использованием кода, который эти двое уже независимо применили к оболочке Bourne) в AT&T. ksh был впервые представлен за пределами AT&T на конференции USENIX 1983 г. , где были описаны эти функции , но не был коммерчески доступен до некоторого времени после этого ( 1 , ] 2 ). Трудно сказать, был ли ^ R
уже там в то время (во всяком случае, он уже был там в 1986 и 1985 (см. usr / man / man1 / ksh .1
страница руководства ksh85 в , этот архив Unix V8 в Unix Heritage Society )), но трудно представить, что это не так, поскольку это важная функция, особенно для оболочки, и я ' d ожидаем, что vi
режим ?
тоже был бы там в то время. В 1970-х годах не было редактируемой курсором истории для оболочек.
Первой оболочкой со встроенной историей редактирования курсора была моя bsh
в 1984 году (на основе прототипа 1982 года). Эта реализация истории использует crontrol-r для повторного отображения текущей командной строки.
В 1986 году оболочка Korn стала членом группы оболочек, реализующих полностью интегрированную редактируемую историю курсора.
Версия tcsh со встроенным редактором впервые появилась в 1987 году.
Bash появился в 1989 году.
Ksh по умолчанию работает не в режиме emacs
, а в режиме gmacs
. режим.
Обратите внимание, что ksh93 поддерживает поиск с помощью control-r даже в режиме по умолчанию, он просто не сообщает вам, что находится в этом режиме. Если я наберу:
^R
, я получу это, а затем смогу ввести строку поиска:
^Rali
alias a=b
она найдет команду псевдонима в истории.
Оболочка Korn поддерживает поиск в истории с помощью Ctrl R, по крайней мере, начиная с ksh93
(и, возможно, даже ksh88
), но они работают не так, как bash
. Сначала вам нужно включить режим Emacs:
set -o emacs
(Это включает другие тонкости, такие как клавиши со стрелками, работающие по умолчанию.)
Теперь, если вы нажмете Ctrl R, оболочка напечатает ^R
; введите поисковый запрос, нажмите Enter, и оболочка покажет вам ближайшую подходящую запись в истории. Вы можете снова нажать Enter, чтобы запустить его как есть, или отредактировать его.