Создайте список каждого пользователя, которому принадлежит файл в заданном каталоге, а также количество файлов и каталогов, которыми они владеют.

У меня возникли проблемы с пониманием кода: ls -l /projects/ghosttrail | tail -n +2 | sed 's/\s\s*/ /g' | cut -d ' ' -f 3 | sort | uniq -c ls -l /projects/ghosttrail | tail -n +2 | sed 's/\s\s*/ /g' | cut -d ' ' -f 3 | sort | uniq -c ls -l /projects/ghosttrail | tail -n +2 | sed 's/\s\s*/ /g' | cut -d ' ' -f 3 | sort | uniq -c . Может ли кто-нибудь дать мне подробное объяснение того, что происходит на каждом шагу? Я знаю, что могу сделать это сам, добавив каждую команду один за другим, но код не работает для меня, и я не понимаю некоторых вещей, таких как значение аргумента +2 для хвоста или чего мы достигли, поставив команду sed и почему мы не берем 4-й столбец в команде вырезания.

Источник: https://ryanstutorials.net/linuxtutorial/piping.php

  • Почему комбинация tail + grep + cut не работает?
  • Временно заморозить процесс при взаимодействии оболочки
  • Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)
  • Перенаправить выход хвоста в файл, а затем остановить, когда найдено совпадение
  • Tail -f передается через grep, не выводящий в файл, но выводит на консоль
  • Хвост нескольких файлов и вывод в качестве дополнительного столбца с результатами поиска
  • Команда для удаления первого N числа строк на входе
  • Как выполнить эту команду оболочки из Python?
  • One Solution collect form web for “Создайте список каждого пользователя, которому принадлежит файл в заданном каталоге, а также количество файлов и каталогов, которыми они владеют.”

    Шаги конвейера, вывод предыдущей команды используется как вход для следующего:

    1. ls -l /projects/ghosttrail список содержимого каталога (не начиная с точки) с подробной информацией.

    2. tail -n +2 начиная с строки 2 (удаляет первую строку). Без + tail покажет последние две строки (как указано в -n , по умолчанию 10).

    3. sed 's/\s\s*/ /g' заменяет несколько последовательных пространств одним.

    4. cut -d ' ' -f 3 получить cut -d ' ' -f 3 -е поле (имя пользователя).

    5. sort | uniq -c sort | uniq -c сортирует и подсчитывает уникальные строки. sort используется, потому что uniq не обнаруживает повторяющиеся строки, если они не смежны, как объяснено в man uniq .

    Альтернативный способ получить те же результаты с помощью GNU find :

     find . -maxdepth 1 -not -name '.*' -printf '%u\n' | sort | uniq 

    find списки имен пользователей ( -printf '%u\n' ) в рабочем каталоге. -maxdepth 1 предотвращает поиск подкаталогов. -not -name '.*' исключает файлы точек. sort | uniq sort | uniq имеет ту же цель, что и в исходном примере.

    Interesting Posts

    Emacs – ужасный шрифт между пробелами

    «Список аргументов слишком длинный»: как мне с этим справиться, не меняя мою команду?

    Есть ли программное обеспечение нормализации звука для OS, совместимое с Linux mint 18?

    Как предоставить разные разрешения для каждого пользователя?

    rsync: как исключить самый верхний каталог

    Перечисленная частота различных строк в отдельной колонке

    Какие аспекты Плана 9 попали в Unix?

    UFW блокирует DNS

    Как я могу автоматически перезапустить панель tmux (Byobu), когда закончится ее задача?

    Убивание нескольких экземпляров скрипта из самого скрипта

    Удалите повторяющиеся строки с помощью twist

    Пользовательские живые режимы – способы обнаружить, что он запущен внутри виртуальной машины (или вообще не запускается в виртуальной машине)

    Почему драйвер HD HD Graphics называется i915?

    Почему я получаю «слишком много аргументов»,

    Что означает «esac» в конце заявления о ситуации в bash? Это необходимо?

    Linux и Unix - лучшая ОС в мире.