Полезные однострочники для Linux

Неочевидные связки из консольных команд на все случаи жизни

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Создатель форума
Всего сообщений: 990
Зарегистрирован: 9 дек 2015, 19:20
Рейтинг пользователя: 399

0
25 декабря 2018, 23:17. Редактировалось 1 раз, последний — 25 декабря 2018, 23:24#1
    В этой теме буду собирать различные полезные однострочники для Linux.

    4X_Pro
    Создатель форума
    Всего сообщений: 990
    Зарегистрирован: 9 дек 2015, 19:20
    Рейтинг пользователя: 399

    0
    25 декабря 2018, 23:23. Редактировалось 1 раз, последний — 25 декабря 2018, 23:24#2
      Итак, начнем. Вот подсчет количества суммарного количества строк в файлах определенного типа во всех подкаталогах:
      find ./ -name '*.php' -exec wc -l {} \;| awk '{ SUM += $1 } END {print SUM}'
      Работает следующим образом: find, начиная с текущего каталога (./) ищет все файлы, маска для которых указана в параметре -name (в данном примере — *.php). Для каждого из найденных файлов запускается команда wc с параметром -l, чтобы считалось только число столбцов (без него еще считается число слов и символов). Получившийся результат из строк вида "число имя_файла" передается в awk, который производит суммирование по первому столбцу в переменную SUM, значение которой и выдается по окончанию работы.
      В частности, с помощью такой команды можно подсчитывать общее число строк в том или ином программном продукте.

      10geek
      Новичок
      Всего сообщений: 46
      Зарегистрирован: 29 июн 2018, 09:36
      Рейтинг пользователя: 1

      1
      2 февраля 2019, 11:02. Редактировалось 2 раза, последний — 2 февраля 2019, 11:07#3
        Рекурсивный подсчёт большого количества файлов в каталоге:
        find -L путь_к_каталогу -type f -printf \\n | awk 'BEGIN { count = 0 } { if(!(++count % 1000)) printf("%s\r", count) } END { print count }'
        Показывает в реальном времени, сколько уже насчитано файлов через каждые 1000 файлов.
        Опция -L нужна в случае, если требуется подсчитывать символические ссылки, указывающие на файлы. Имейте ввиду, что если указана опция -L, find будет рекурсивно переходить в каталоги, на которые указывают символические ссылки.

        Одна страница
        Распечатать

        У вас нет прав для отправки сообщений в эту тему.

        Задать вопрос

        Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
        Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.