Ошибка при запуске службы tomcat7.service в Arch Linux

Предполагая, что у вас есть доступ к инструментам GNU (да, если вы используете Linux) , Я бы вместо этого использовал stat . Например:

$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 15 16:49 file1
-rw-r--r-- 1 terdon terdon 0 Sep 15 16:39 file2
-rw-r--r-- 1 terdon terdon 0 Sep 15 16:29 file3
-rw-r--r-- 1 terdon terdon 0 Sep 15 16:19 file4
-rw-r--r-- 1 terdon terdon 0 Sep 15 16:09 file5
-rw-r--r-- 1 terdon terdon 0 Sep 15 15:59 file6
-rw-r--r-- 1 terdon terdon 0 Sep 15 15:49 file7

Итак, пятый самый новый файл - file5 . Чтобы напечатать именно это, вы можете сделать:

$ stat --printf '%Y %n\0' * | sort -zrnk1 | 
    awk -vRS='\0' 'NR==5{sub(/^[^ ]* /,"",$0); print}'

Затем вы можете легко превратить это в функцию оболочки, которая может принимать N (5 в вашем примере) в качестве аргумента. Просто добавьте эти строки в ваш ~ / .bashrc или аналогичный:

nthfile() {
  stat --printf '%Y %n\0' * | sort -zrnk1 |
     awk -vRS='\0' -vn="$1" 'NR==n{sub(/^[^ ]* /,"",$0); print}'
}

Обратите внимание, что это также покажет вам каталоги. Если вам нужно, чтобы он соответствовал скрытым файлам, запустите (при условии, что вы используете bash) shopt -s dotglob перед приведенной выше командой.

Объяснение

  • stat --printf '% Y% n \ 0' * : для каждого файла или каталога в текущей папке вывести дату изменения в секундах с начала эпохи (% s ) и имя файла (% n ) и заканчивайте каждую строку \ 0 вместо \ n . Это позволяет нам правильно работать с именами файлов, содержащими символы новой строки.
  • sort -zrnk1 : отсортировать вывод в обратном порядке сортировки ( -r ), от самого нового к самому старому. -z сообщает sort ожидать входных строк с нулевым символом в конце. -n сообщает ему о числовой сортировке, а -k1 учитывает только первое поле при сортировке.
  • awk :
    • -vRS = '\ 0' : установить разделитель входной записи (строки) на \ 0 ;
    • vn = $ 1 : установить для переменной n значение, которое было задано в качестве входных данных для функции;
    • NR == n {} : запустить это только в строке n (5 в первом примере);
    • sub (/ ^ [^] * /, "", $ 0); print : замените все непробельные символы с начала строки ( ^ [^] * ) до первого пробела и выведите результат
3
02.04.2018, 05:37
1 ответ

Вам необходимо установить java -8 или более раннюю версию в качестве версии java по умолчанию для работы с tomcat в archlinux. Следуйте руководству Arch Wiki, чтобы установить правильную версию.https://wiki.archlinux.org/index.php/Java#Officially_supported_packages

Для этого запустите:

sudo archlinux-java set java-8-openjdk
1
27.01.2020, 21:30

Теги

Похожие вопросы