Да, используется история.
! #
- это указатель события истории
это относится ко всей набранной командной строке.
: *
- обозначение слова (диапазона), которое относится ко всем словам, кроме 0-го.
Итак, после того, как вы наберете echo «Это предложение».
,
затем ! #: *
заменяется на «Это предложение».
.
И x - y
(где x и y - целые числа)
- это обозначение слова (диапазона), которое относится к номеру слова x через номер слова y .
Если y опущено ( x -
),
это интерпретируется как обозначение номера слова x от предпоследнего слова.
Итак, после того, как ваша «вся командная строка введена до сих пор» стоит как
echo "This is a sentence. " "This is a sentence. "
затем ! #: 1-
заменяется на «Это предложение».
,
потому что каждая из цитируемых «Это предложение».
строк считается одним словом,
и поэтому ! #: 1-
эквивалентно ! #: 1
(просто слово номер 1).
Таким образом, вы получаете
echo "This is a sentence. " "This is a sentence. " "This is a sentence. " >text3
. Тот факт, что -
и >
появляются вместе в команде, это просто путаница;
они не взаимодействуют.
И то, что «Это приговор». цитируется, скрывает происходящее; если вы сказали
echo This is a sentence. !#:* !#:1-
, он расширится до
echo This is a sentence. This is a sentence. !#:1-
, а затем до
echo This is a sentence. This is a sentence. This is a sentence. This is a
(потому что ! #: 1-
расширяется до слова с номером 1 через второе до последнего слова.)
Я сделаю вывод, что последнее предложение означает «Как мне kill найти процесс, который создает эти файлы [чтобы я мог его убить]?»
Предположим, что разрешения системы / , / etc и / etc / shadow каталоги и файлы нормальные, что-то вроде:
# ls -ld / drwxr-xr-x 31 root root 1024 Sep 30 13:26 / # ls -ld /etc drwxr-xr-x 76 root sys 215 Oct 28 23:05 /etc # ls -al /etc/shadow -r-------- 1 root sys 294 Oct 15 16:09 /etc/shadow #
Т.е. только root может создавать файлы в / etc и читать / etc / shadow, тогда процесс создания файлов должен иметь привилегии root, чтобы читать файл / etc / shadow и создавать копии (перекрестная проверка: копии / etc / shadow принадлежат root).
Это ненормальное поведение в системе Solaris. Мое первое безумное предположение (даже не SWAG), основанное на регулярности возникновения, заключается в том, что есть запись в корневом crontab или запись пользователя crontab с повышенными привилегиями, делающая это по какой-то странной причине. Может быть, какая-то специальная синхронизация паролей. Если да, то убивать его - это просто комментировать запись crontab (при условии, что вы все еще хотите это сделать после того, как узнаете больше). Мое второе предположение состоит в том, что это зона, и запись crontab, выполняющая это, находится в глобальной зоне. В таком случае вы и должны быть SOL. Мое третье предложение - отслеживать каталог / etc с помощью dtrace и пытаться поймать процесс на месте. Как это сделать - другой вопрос.