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

У меня возникли проблемы с пониманием кода: 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

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 имеет ту же цель, что и в исходном примере.

  • Как сделать «хвост -f» файлов с чередованием логов?
  • Сохранять счет из файла журнала
  • Периодически получать новые строки из файла, возможно, зависания
  • Интерактивный, скрытый живой хвост из нескольких файлов?
  • Можно ли изменить количество строк по умолчанию хвоста?
  • Файлы с изменением хвоста
  • Греп с пробелами внезапно не работает
  • Как следить и искать в файле, проходящем через фильтр, менее
  • Почему некоторые изменения файлов не отображаются в хвосте -f?
  • Проверьте, является ли условие awk совпадением в лог-файле
  • Можно ли «перевернуть» символическую ссылку на новый файл, не затрагивая никаких открытых дескрипторов файлов?
  • Перенаправить выход хвоста в файл, а затем остановить, когда найдено совпадение
  • Interesting Posts

    Что является хорошей альтернативой iTunes для Linux?

    Каков наиболее ресурсоэффективный способ подсчета количества файлов в каталоге?

    Сколько секций можно создать в объектном файле?

    Как эта команда оболочки работает?

    Разблокировка всех портов в маршрутизаторе при использовании Linux

    Зеркальная папка с правами root

    Будет ли ключ usb иметь одно и то же имя каждый раз, когда я монтирую его?

    Приложение QT не получает широковещательную передачу udp, поскольку ядро ​​linux 3.13.0-70

    Файл не отображается с помощью vi, но отображается с помощью команды ls -l CD *

    logrotate не работает для munin после последнего обновления на OpenSUSE 11.4

    Греп: как добавить условие «ИЛИ»?

    Возможность легко переключаться между каталогами в разных областях

    Как Wireshark видит пакеты, упавшие с помощью iptables?

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

    Параметр awk split char

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