chvt N
с N
количество терминала (2 в Вашем примере). На Debian это находится в kbd
пакет, я предполагаю, что это должно быть то же на Ubuntu.
Вот:
find . -iname 'updated.txt' -exec ls -l {} \; -exec tail -n1 {} \;
Более простая альтернатива, но с меньшим количеством управления форматированием ls
:
find . -iname 'updated.txt' -ls -exec tail -n1 {} \;
ОБНОВЛЕНИЕ
Как Вы сказали в комментариях, Вы предпочитаете иметь ls
вывод и tail
выходная сторона стороной для каждого файла.
Вы могли выполнить подоболочку для каждого соответствия к echo
вывод двух команд рядом:
find . -iname 'updated.txt' -exec sh -c 'echo $(ls -l "{}") $(tail -n1 "{}")' \;
Точно так же Вы могли использовать paste
:
find . -iname 'updated.txt' -exec bash -c 'paste <(ls -l "{}") <(tail -n1 "{}")' \;
Или Вы могли выполнить два find
команды параллельно и вставка их выходная сторона стороной как это:
paste \
<(find . -iname 'updated.txt' -exec ls -l {} \;) \
<(find . -iname 'updated.txt' -exec tail -n1 {} \;)
$ find . -iname 'updated.txt' -printf '%M %u %g %s %Tc %p\t' -exec tail -n1 {} \;
Вывод будет похож:
-rw-r--r-- user group 4853 2013-12-22T00:58:32 MSK ./path/updated.txt Last line of the updated.txt.
ls -l
, одна строка на файл, плюс в конце еще одна строка с содержанием последних строк, вставляемых вместе как столбцы, как этот? – janos 30.12.2013, 17:04tail
быть добавленным кls -l
как дополнительный столбец, а не имеютtail
добавьте новую строку. – Kris 30.12.2013, 17:59paste \ <br/> <(find . -iname 'updated.txt' -exec ls -l {} \;) \ <br/> <(find . -iname 'updated.txt' -exec tail -n1 {} \;)
– Kris 30.12.2013, 22:49<(...)
вpaste <(cmd1) <(cmd2)
назван Заменой Процесса. Идея заменяет<(...)
с именованным каналом, который содержит вывод команд внутри. Можно читать об этом вman bash
под разделом Process Substitution. – janos 30.12.2013, 23:03