Проверьте дескриптор файла № 1 (STDOUT) в /proc/$PID/fd/
. Ядро представляет этот файл как символьную ссылку на файл, к которому перенаправляется дескриптор.
$ readlink -f /proc/20361/fd/1
/tmp/file
Я думаю с помощью завершения истории, намного более универсальный способ сделать это
$ sudo !!
Большинство оболочек имеет некоторый ярлык для предыдущей команды. Тот работает в ударе и zsh. Существуют различные способы, которыми можно сделать замену, но обычно они лучше всего оставлены для удаления или изменения битов, если Вы хотите расшириться, это, просто захватив все это является самый простой путь. Можно добавить, что Вы любите прежде и после!! подробно остановиться на предыдущей команде.
Править: Исходный вопрос был о предварительном ожидании к предыдущей команде который вышеупомянутые покрытия приятно. Если бы Вы хотите изменить что-то в нем, когда комментатор ниже синтаксиса пошел бы как это:
$ sudo !!:s/search/replace/
... где 'поиск' является строкой для соответствия против и замена... хорошо Вы получаете идею.
Не работает на меня в ударе:
$ whoami
mikel
$ ^^sudo
-bash: :s^^sudo: no previous substitution
или zsh:
$ ^^sudo
$
или даже tcsh, который я думаю изобретенный что синтаксис:
% ^^sudo
No previous left hand side.
!!
делает задание:
$ whoami
mikel
$ sudo !!
sudo whoami
root
ДА. Можно сделать это. например, работать ls
команда в / корневом каталоге, можно сделать это как:
$ ls
$ ^ ^sudo
Вторая команда выполнится как "sudo ls"
Следите к нему, что Вы добавляете одно "пространство" после sudo во второй строке.
ls
занимать место.
– Mikel
28.04.2011, 14:25
echo Calen
и требуемый, чтобы вместо этого работатьsudo echo Caleb
.. Я мог затем сделать что-то как..sudo !!^Calen^Caleb
? – Default 28.04.2011, 14:56sudo !!:s/Calen/Caleb/
– Caleb 28.04.2011, 15:08set +o histexpand
если Вы хотите выключить его. Это - то, что я делаю, потому что любой!
в двойных кавычках инициирует ошибку (какecho "Hello, World!"
) – Benoit 28.04.2011, 15:41