Вывод содержимого каталога, указанного в таблице 2, в указанном формате на экран и в файл

Обновлено: 07.07.2024

Тип: внутренний (1.0 и выше)

DIR [d:][путь][имя файла] [/A:(атрибуты)] [/O:(порядок)] [/B][/C][/CH][/L][/S] [/П] [/В]

Назначение: Отображает каталог файлов и каталогов, хранящихся на диске.

Помимо файлов и каталогов, DIR также отображает имя тома и объем свободного места на диске (если в текущем каталоге есть файлы). Обратите внимание, что оба они относятся ко всему ДИСКУ, а не только к указанному вами пути.

Команда DIR также полезна, если вы хотите узнать, какие каталоги были созданы на указанном диске. Каталоги будут отображаться вместе с файлами на диске. Их можно узнать по метке DIR, следующей за именем каталога.

Подстановочные знаки (? и *) можно использовать для указания групп файлов.
Для получения дополнительной информации об использовании команды DIR обратитесь к Главе 2, Использование общих команд DOS.

Когда вы используете команду DIR, она отображает все файлы, которые соответствуют спецификациям пути и имени файла, а также их размер в байтах, а также время и дату их последней модификации. Если вы не введете ни одну из опций, отобразится весь список, даже если он слишком длинный и не помещается на одном экране. Чтобы ограничить объем отображаемых данных, используйте любой из двух вариантов, описанных ниже.

/A:attributes Будут отображаться только те файлы, атрибуты которых соответствуют указанным вами. Вы можете ввести последовательность атрибутов после двоеточия. Между записями вводить пробелы не нужно. Этот параметр доступен в версиях DOS 5 и 6.

H|-H - Скрытые (или не скрытые) файлы.
S|-S - Системные (или несистемные) файлы.
D|-D - Каталоги (или только файлы).
R|-R — файлы только для чтения (или чтения/записи).
A|-A - Архивируемые (или уже заархивированные) файлы.
/O:order — позволяет указать порядок, в котором будут отображаться записи. Этот параметр доступен в версиях DOS 5 и 6.

N|-N - По имени (в алфавитном или обратном алфавитном порядке).
E|-E - По расширению (в алфавитном или обратном алфавитном порядке).
D|-D - По дате и времени (в хронологическом или обратном порядке).
S|-S - По размеру (увеличение или уменьшение).
C|-C — сортировка по коэффициенту сжатия DoubleSpace от низшей к максимальной или от максимальной к низшей. (Только версия 6.0)
G|-G - групповые каталоги (до или после) других файлов.
/B — (Голый формат) Отображает только имена файлов.
/C — Отображает коэффициент сжатия файлов, сжатых с помощью DBLSPACE. Этот параметр доступен в DOS версии 6.
/CH — отображает степень сжатия XT

Чтобы отобразить на диске C только файлы без расширения имени файла, введите

Эта функция доступна в DOS версии 6. Команда DIR также отображает каталоги. Их можно узнать по метке DIR, следующей за именем каталога.

проигрывает записи файлов в указанном каталоге и во всех подкаталогах, расположенных ниже него в иерархическом порядке.
/P — пауза при заполнении экрана. Нажмите любую клавишу, чтобы отобразить другой экран, полный данных.
/W — отображает только имена файлов и имена каталогов (без дополнительной информации о каждом файле) в пятиширинном формате отображения.

Чтобы отобразить на текущем диске только файлы с расширением .TXT, начинающиеся с букв FIL , введите

Чтобы отобразить на диске C только файлы без расширения имени файла, введите

Эта форма команды DIR также отображает каталоги. Их можно узнать по метке DIR, следующей за именем каталога.

Командлет Format-Table форматирует выходные данные команды в виде таблицы с выбранными свойствами объекта в каждом столбце. Тип объекта определяет макет по умолчанию и свойства, отображаемые в каждом столбце. Вы можете использовать параметр Property, чтобы выбрать свойства, которые вы хотите отобразить.

PowerShell использует средства форматирования по умолчанию для определения того, как отображаются типы объектов. Вы можете использовать файлы .ps1xml для создания пользовательских представлений, которые отображают выходную таблицу с заданными свойствами. После создания пользовательского представления используйте параметр View, чтобы отобразить таблицу с вашим пользовательским представлением. Дополнительные сведения о представлениях см. в разделе about_Format.ps1xml.

Хеш-таблицу можно использовать для добавления вычисляемых свойств к объекту перед его отображением и для указания заголовков столбцов в таблице. Чтобы добавить вычисляемое свойство, используйте параметр Property или GroupBy. Дополнительные сведения о хэш-таблицах см. в разделе about_Hash_Tables.

Примеры

Пример 1. Форматирование хоста PowerShell

В этом примере отображается информация о главной программе для PowerShell в виде таблицы.

Командлет Get-Host получает объекты System.Management.Automation.Internal.Host.InternalHost, представляющие узел. Объекты передаются по конвейеру в Format-Table и отображаются в таблице.Параметр AutoSize регулирует ширину столбцов, чтобы свести к минимуму усечение.

Пример 2. Форматирование процессов по BasePriority

В этом примере процессы отображаются в группах с одинаковым свойством BasePriority.

Командлет Get-Process получает объекты, представляющие каждый процесс на компьютере, и отправляет их по конвейеру в Sort-Object . Объекты сортируются в порядке их свойства BasePriority.

Отсортированные объекты отправляются по конвейеру в Format-Table . Параметр GroupBy упорядочивает данные процесса в группы на основе значения их свойства BasePriority. Параметр Wrap гарантирует, что данные не усекаются.

Пример 3. Форматирование процессов по дате начала

В этом примере отображается информация о процессах, запущенных на компьютере. Объекты сортируются, и Format-Table использует представление для группировки объектов по дате их начала.

Get-Process получает объекты System.Diagnostics.Process, представляющие процессы, запущенные на компьютере. Объекты передаются по конвейеру в Sort-Object и сортируются на основе свойства StartTime.

Отсортированные объекты отправляются по конвейеру в Format-Table . Параметр View указывает представление StartTime, определенное в файле PowerShell DotNetTypes.format.ps1xml для объектов System.Diagnostics.Process. Представление StartTime преобразует время начала каждого процесса в короткую дату, а затем группирует процессы по дате начала.

Файл DotNetTypes.format.ps1xml содержит представление приоритетов для процессов. Вы можете создавать собственные файлы format.ps1xml с настроенными представлениями.

Пример 4. Использование пользовательского представления для вывода таблицы

В этом примере пользовательское представление отображает содержимое каталога. Пользовательское представление добавляет столбец CreationTime в выходные данные таблицы для объектов System.IO.DirectoryInfo и System.IO.FileInfo, созданных Get-ChildItem .

Пользовательское представление в этом примере было создано на основе представления, определенного в исходном коде PowerShell. Дополнительные сведения о представлениях и коде, используемом для создания представления в этом примере, см. в разделе about_Format.ps1xml.

Get-ChildItem получает содержимое текущего каталога C:\Test . Объекты System.IO.DirectoryInfo и System.IO.FileInfo передаются по конвейеру. Format-Table использует параметр View для указания пользовательского представления mygciview, которое включает столбец CreationTime.

Вывод Format-Table по умолчанию для Get-ChildItem не включает столбец CreationTime.

Пример 5. Использование свойств для вывода таблицы

В этом примере параметр Property используется для отображения всех служб компьютера в таблице с двумя столбцами, в которой показаны свойства Name и DependentServices.

Get-Service получает все службы на компьютере и отправляет объекты System.ServiceProcess.ServiceController по конвейеру. Format-Table использует параметр Property, чтобы указать, что свойства Name и DependentServices отображаются в таблице.

Name и DependentServices — это два свойства типа объекта. Чтобы просмотреть все свойства: Get-Service | Свойства Get-Member -MemberType .

Пример 6. Форматирование процесса и расчет времени его выполнения

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

Get-Process получает все процессы блокнота локального компьютера и отправляет объекты по конвейеру. Format-Table отображает таблицу с двумя столбцами: ProcessName, свойство Get-Process, и TotalRunningTime, вычисляемое свойство.

Свойство TotalRunningTime задается хэш-таблицей с двумя ключами: Label и Expression. Ключ Label задает имя свойства. Клавиша Expression задает вычисление. Выражение получает свойство StartTime каждого объекта процесса и вычитает его из результата команды Get-Date, которая получает текущую дату и время.

Пример 7. Форматирование процессов Блокнота

В этом примере командлет Get-CimInstance используется для получения времени выполнения всех процессов блокнота на локальном компьютере. Вы можете использовать Get-CimInstance с параметром ComputerName для получения информации с удаленных компьютеров.

Get-CimInstance получает экземпляры класса WMI Win32_Process, который описывает все процессы локального компьютера с именем notepad.exe. Объекты процесса хранятся в переменной $Processes.

Объекты процесса в переменной $Processes отправляются по конвейеру в Format-Table , которая отображает свойство ProcessName и новое вычисляемое свойство Total Running Time.

Эта команда присваивает имя нового вычисляемого свойства «Общее время выполнения» клавише «Метка». Блок сценария ключа Expression вычисляет, как долго выполняется процесс, вычитая дату создания процесса из текущей даты. Командлет Get-Date получает текущую дату.Дата создания вычитается из текущей даты. Результатом является значение Total Running Time.

Пример 8. Устранение ошибок формата

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

Параметры

Указывает, что командлет корректирует размер и количество столбцов в зависимости от ширины данных. По умолчанию размер и количество столбцов определяются представлением.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает, что командлет отображает ошибки в командной строке. Этот параметр можно использовать в качестве средства отладки при форматировании выражений в команде Format-Table и необходимости устранения неполадок с выражениями.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Определяет формат объекта коллекции и объектов в коллекции. Этот параметр предназначен для форматирования объектов, поддерживающих интерфейс ICollection (System.Collections). Значение по умолчанию — EnumOnly. Допустимые значения для этого параметра следующие:

  • EnumOnly: отображает свойства объектов в коллекции.
  • CoreOnly: отображает свойства объекта коллекции.
  • Оба: отображаются свойства объекта коллекции и свойства объектов в коллекции.

Указывает, что командлет предписывает командлету отобразить всю информацию об ошибке. Используйте с параметром DisplayError или ShowError. По умолчанию, когда объект ошибки записывается в потоки ошибок или отображения, отображается только часть информации об ошибке.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Определяет отсортированные выходные данные в отдельных таблицах на основе значения свойства. Например, вы можете использовать GroupBy для перечисления сервисов в отдельных таблицах в зависимости от их статуса.

Введите выражение или свойство. Параметр GroupBy предполагает, что объекты отсортированы. Используйте командлет Sort-Object перед использованием Format-Table для группировки объектов.

  • Имя (или ярлык) –
  • Выражение - или
  • Форматная строка –

Тип:Объект
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Исключает заголовки столбцов из таблицы.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает объекты для форматирования. Введите переменную, содержащую объекты, или введите команду или выражение для получения объектов.

Тип:PSObject
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:Истина
Допускать подстановочные знаки:False

Определяет свойства объекта, отображаемые на дисплее, и порядок их появления. Введите одно или несколько имен свойств, разделенных запятыми, или используйте хеш-таблицу для отображения вычисляемого свойства. Подстановочные знаки разрешены.

Если этот параметр опущен, отображаемые свойства будут зависеть от свойств первого объекта. Например, если у первого объекта есть PropertyA и PropertyB, а у последующих объектов есть PropertyA, PropertyB и PropertyC, то будут отображаться только заголовки PropertyA и PropertyB.

Параметр Property является необязательным. Вы не можете использовать параметры Property и View в одной команде.

  • Имя (или ярлык)
  • Выражение - или
  • Форматная строка –
  • Ширина – – должна быть больше 0
  • Выравнивание: значение может быть по левому краю, по центру или по правому краю.

Тип:Объект [ ]
Позиция:0
Значение по умолчанию:Нет
Принять ввод конвейера:False< /td>
Допускать подстановочные знаки:True

Повторяет отображение заголовка таблицы после каждого заполнения экрана. Повторяющийся заголовок удобен, когда выходные данные передаются на пейджер, такой как less или more, или пейджинг с помощью программы чтения с экрана.

Этот параметр был добавлен в PowerShell 6.2.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Этот параметр отправляет ошибки через конвейер. Этот параметр можно использовать в качестве средства отладки при форматировании выражений в команде Format-Table и необходимости устранения неполадок с выражениями.

Тип:SwitchParameter
Позиция:Именованный
Значение по умолчанию:False
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Параметр View позволяет указать альтернативный формат или пользовательское представление для таблицы. Вы можете использовать представления PowerShell по умолчанию или создавать собственные представления. Дополнительные сведения о создании пользовательского представления см. в about_Format.ps1xml.

Альтернативные и настраиваемые представления для параметра View должны использовать формат таблицы, в противном случае Format-Table завершится ошибкой. Если альтернативное представление представляет собой список, используйте командлет Format-List. Если альтернативное представление не является списком или таблицей, используйте командлет Format-Custom.

Вы не можете использовать параметры Property и View в одной команде.

Тип:Строка
Позиция:Именованный
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Отображает текст, превышающий ширину столбца, на следующей строке. По умолчанию текст, превышающий ширину столбца, обрезается.

Одна из проблем, с которой сталкиваются пользователи, впервые изучающие работу с Linux, – это поиск нужных файлов.

В этом руководстве рассказывается, как использовать команду find с подходящим названием. Это поможет вам искать файлы в вашей системе, используя различные фильтры и параметры. Также будет кратко рассмотрена команда locate, которую можно использовать для поиска файлов другим способом.

Предпосылки

Чтобы следовать этому руководству, вам потребуется доступ к компьютеру с операционной системой на базе Linux. Это может быть либо виртуальный частный сервер, к которому вы подключились с помощью SSH, либо ваша локальная машина. Обратите внимание, что это руководство было проверено с использованием сервера Linux с Ubuntu 20.04, но приведенные примеры должны работать на компьютере с любой версией любого дистрибутива Linux.

Если вы планируете использовать удаленный сервер, чтобы следовать этому руководству, мы рекомендуем вам сначала выполнить наше руководство по начальной настройке сервера. Так вы создадите безопасную серверную среду, включая пользователя без полномочий root с привилегиями sudo и брандмауэр, настроенный с помощью UFW, которые вы сможете использовать для развития своих навыков работы с Linux.

Кроме того, вы можете использовать интерактивный терминал, встроенный в эту страницу, чтобы поэкспериментировать с примерами команд из этого руководства. Щелкните следующее Запустить интерактивный терминал! кнопку, чтобы открыть окно терминала и начать работу в среде Linux (Ubuntu).

Запустите интерактивный терминал!

Примечание. Чтобы проиллюстрировать, как работают команды find и locate, приведенные в этом руководстве примеры команд выполняют поиск файлов, хранящихся в папке / или в корневом каталоге. Из-за этого, если вы вошли в терминал как пользователь без полномочий root, некоторые из примеров команд могут содержать в своем выводе Отказ в доступе.

Этого следовало ожидать, поскольку вы ищете файлы в каталогах, к которым у обычных пользователей обычно нет доступа. Тем не менее, эти примеры команд должны по-прежнему работать и быть полезными для понимания того, как работают эти программы.

Поиск по имени

Самый очевидный способ поиска файлов — по имени.

Чтобы найти файл по имени с помощью команды find, используйте следующий синтаксис:

Это будет чувствительно к регистру, то есть поиск по запросу отличается от поиска по запросу .

Чтобы найти файл по имени, но игнорировать регистр запроса, используйте параметр -iname:

Если вы хотите найти все файлы, которые не соответствуют определенному шаблону, вы можете инвертировать поиск, указав -not :

Кроме того, вы можете инвертировать поиск, используя восклицательный знак ( ! ), например:

Обратите внимание, что если вы используете ! , вы должны экранировать символ обратной косой чертой ( \ ), чтобы оболочка не пыталась интерпретировать его до того, как find сможет действовать.

Поиск по типу

Вы можете указать тип файлов, которые хотите найти, с помощью параметра -type. Это работает следующим образом:

Вот некоторые дескрипторы, которые можно использовать для указания типа файла:

  • f : обычный файл
  • d : каталог
  • l : символическая ссылка
  • c : символьные устройства
  • b : заблокировать устройства

Например, если вы хотите найти все символьные устройства в вашей системе, вы можете ввести следующую команду:

Эта команда ищет только устройства в каталоге /dev, в котором обычно монтируются файлы устройств в системах Linux:

Вы можете найти все файлы, оканчивающиеся на .conf, с помощью следующей команды. В этом примере выполняется поиск соответствующих файлов в каталоге /usr:

Примечание. В предыдущем примере объединены два выражения запроса поиска; а именно, -type f и -name "*.conf" . Чтобы любой файл был возвращен, он должен удовлетворять обоим этим выражениям.

Вы можете комбинировать подобные выражения, разделяя их параметром -and, но, как показано в этом примере, -and подразумевается каждый раз, когда вы включаете два выражения. Вы также можете вернуть результаты, удовлетворяющие любому выражению, разделив их опцией -or:

В этом примере будут найдены все файлы, имена которых соответствуют запросу query_1 или query_2 .

Фильтрация по времени и размеру

find предоставляет множество способов фильтрации результатов по размеру и времени.

Вы можете фильтровать файлы по их размеру, используя параметр -size. Для этого вы должны добавить специальный суффикс в конце числового значения размера, чтобы указать, рассчитываете ли вы размер в байтах, мегабайтах, гигабайтах или другом размере. Вот некоторые часто используемые суффиксы размера:

  • c : байты
  • k : килобайты
  • M : мегабайты
  • G : гигабайты
  • b : блоки по 512 байт.

Для иллюстрации следующая команда найдет все файлы в каталоге /usr размером ровно 50 байт:

Чтобы найти файлы размером менее 50 байт, можно использовать следующий синтаксис:

Чтобы найти в каталоге /usr файлы размером более 700 мегабайт, можно использовать следующую команду:

Для каждого файла в системе Linux хранит временные данные о времени доступа, времени модификации и времени изменения.

Время доступа: время последнего чтения или записи файла.

Время модификации: время последнего изменения содержимого файла.

Время изменения: время последнего изменения метаданных индексного дескриптора файла.

Вы можете основывать свои поисковые запросы на этих параметрах, используя параметры -atime , -mtime и -ctime соответственно. Для любого из этих параметров вы должны указать значение, указывающее, сколько дней в прошлом вы хотите выполнить поиск. Как и в случае с параметрами размера, описанными ранее, перед этими параметрами можно поставить символы плюс или минус, чтобы указать «больше» или «меньше».

Например, чтобы найти файлы в каталоге /usr, которые были изменены за последний день, выполните следующую команду:

Если вам нужны файлы, к которым обращались менее суток назад, вы можете запустить эту команду:

Чтобы найти файлы, метаинформация которых была изменена более 3 дней назад, можно выполнить следующее:

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

Это даст файлы, которые были изменены за последнюю минуту.

find также может выполнять сравнение с эталонным файлом и возвращать более новые файлы:

Этот синтаксис вернет все файлы в системе, которые были созданы или изменены позже эталонного файла.

Поиск по владельцу и разрешениям

Вы также можете искать файлы по пользователю или группе, которой принадлежит файл, используя параметры -user и -group соответственно. Чтобы найти все файлы в каталоге /var, принадлежащие пользователю syslog, выполните следующую команду:

Аналогичным образом вы можете указать файлы в каталоге /etc, принадлежащие теневой группе, набрав:

Вы также можете искать файлы с определенными разрешениями.

Если вы хотите сопоставить точный набор разрешений, вы можете использовать этот синтаксис, указав разрешения с помощью восьмеричной записи:

Это будет соответствовать файлам с точно указанными разрешениями.

Если вы хотите указать что-либо с хотя бы этими разрешениями, вы можете поставить перед обозначением разрешений знак минус:

Это будет соответствовать любым файлам, имеющим дополнительные разрешения. В этом случае будет найден файл с правами доступа 744.

Фильтрация по глубине

В этом разделе вы создадите примерную структуру каталогов, которую затем будете использовать для изучения фильтрации файлов по их глубине внутри структуры.

Если вы следуете примерам из этого руководства, было бы разумно создать эти файлы и каталоги в каталоге /tmp/. /tmp/ — это временный каталог, что означает, что любые файлы и каталоги в нем будут удалены при следующей загрузке сервера. Это будет полезно для целей данного руководства, поскольку вы можете создавать столько каталогов, файлов и ссылок, сколько хотите, не беспокоясь о том, что они впоследствии засорят вашу систему.

После выполнения команд в этом разделе ваш каталог /tmp/ будет содержать три уровня каталогов с десятью каталогами на первом уровне. Каждый каталог (включая временный каталог) будет содержать десять файлов и десять подкаталогов.

Создайте примерную структуру каталогов в каталоге /tmp/ с помощью следующей команды:

После этого заполните эти каталоги несколькими образцами файлов с помощью команды touch:

Установив эти файлы и каталоги, перейдите в только что созданный каталог test/:

Чтобы получить общее представление о том, как find будет извлекать файлы из этой структуры, начните с обычного поиска по имени, который соответствует любому файлу с именем file1 :

Это вернет много результатов. Если вы направите вывод в счетчик, вы обнаружите, что всего 1111 результатов:

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

Чтобы найти файл1 только в каталогах уровня 1 и выше, вы можете указать максимальную глубину 2 (1 для каталога верхнего уровня и 1 для каталогов уровня 1):

Это гораздо более управляемый список.

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

Вы можете использовать это, чтобы найти только файлы в конце ветвей каталога:

Опять же, из-за разветвленной структуры каталогов будет возвращено большое количество результатов (1000).

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

Такое сочетание этих параметров значительно сужает результаты: возвращается только 110 строк вместо прежних 1 000.

Выполнение команд по результатам поиска

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

Кнопка <> используется в качестве заполнителя для файлов, которые находят совпадения. \; позволяет найти, где заканчивается команда.

Например, предположив, что вы все еще находитесь в каталоге test/, который вы создали в каталоге /tmp/ на предыдущем шаге, вы можете найти файлы в предыдущем разделе, у которых были разрешения 644, и изменить их, чтобы они имели разрешения 664:

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

В этом примере выполняется поиск всех каталогов с разрешениями, установленными на 755, а затем изменяются разрешения на 700 .

Поиск файлов с помощью locate

Альтернативой использованию find является команда locate. Эта команда часто выполняется быстрее и может с легкостью выполнять поиск по всей файловой системе.

Вы можете установить эту команду в Debian или Ubuntu с помощью apt, обновив списки пакетов и затем установив пакет mlocate:

В Rocky Linux, CentOS и других дистрибутивах, производных от RedHat, вы можете вместо этого использовать команду dnf для установки mlocate:

Причина, по которой locate работает быстрее, чем find, заключается в том, что он опирается на базу данных, в которой перечислены все файлы в файловой системе. Эта база данных обычно обновляется один раз в день с помощью cron-скрипта, но вы можете обновить ее вручную с помощью команды updatedb. Запустите эту команду сейчас с привилегиями sudo:

Помните, что база данных локации всегда должна быть актуальной, если вы хотите найти новые файлы. Если вы добавите новые файлы до выполнения сценария cron или до запуска команды updatedb, они не будут отображаться в результатах вашего запроса.

locate позволяет фильтровать результаты несколькими способами. Самый простой способ использовать его для поиска файлов — использовать следующий синтаксис:

Это будет соответствовать любым файлам и каталогам, которые содержат строковый запрос в любом месте их пути к файлу. Чтобы возвращать только файлы, имена которых содержат сам запрос, вместо каждого файла, содержащего запрос в каталогах, ведущих к нему, вы можете включить флаг -b для поиска только тех файлов, чье «базовое имя» соответствует запросу:

Чтобы функция locate возвращала только те результаты, которые все еще существуют в файловой системе (имеются в виду файлы, которые не были удалены между последним вызовом updateb и текущим вызовом locate), используйте флаг -e:

Вы можете получить статистику по каталогизированной информации locate с помощью параметра -S:

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

Заключение

Команды find и locate являются полезными инструментами для поиска файлов в вашей системе. Обе являются мощными командами, которые можно усилить, комбинируя их с другими утилитами через конвейеры, но вам решать, какой инструмент подходит для вашей конкретной ситуации.

С этого момента мы рекомендуем вам продолжать экспериментировать с поиском и размещением .Вы можете прочитать их соответствующие справочные страницы, чтобы узнать о других параметрах, не описанных в этом руководстве, и вы можете анализировать результаты поиска и управлять ими, перенаправляя их в другие команды, такие как wc , sort и grep .

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Bolaji Ayodeji

Боладжи Айодеджи

С момента создания Unix в 1970-х годах многие операционные системы использовали его в качестве основы. Многие из этих операционных систем потерпели неудачу, в то время как другие преуспели.

Linux — одна из самых популярных операционных систем на базе Unix. Это открытый исходный код, который используется по всему миру во многих отраслях.

Одной из замечательных особенностей операционной системы Linux является интерфейс командной строки (CLI), который позволяет пользователям взаимодействовать со своим компьютером из оболочки. Оболочка Linux представляет собой среду REPL (чтение, оценка, печать, цикл), в которой пользователи могут вводить команду, а оболочка запускает ее и возвращает результат.

Команда ls — это одна из многих команд Linux, которые позволяют пользователю просматривать файлы или каталоги из интерфейса командной строки.

В этой статье мы подробно рассмотрим команду ls и некоторые из наиболее важных флагов, которые вам понадобятся в повседневной жизни.

Предпосылки

  • Компьютер с каталогами и файлами
  • Установите один из дистрибутивов Linux
  • Базовые знания о навигации по интерфейсу командной строки.
  • Улыбка на вашем лице :)

Команда Linux ls

Команда ls используется для вывода списка файлов или каталогов в Linux и других операционных системах на базе Unix.

Точно так же, как вы перемещаетесь в своем Проводнике файлов или Finder с помощью графического интерфейса, команда ls по умолчанию позволяет вам вывести список всех файлов или каталогов в текущем каталоге, а также далее взаимодействовать с ними через командную строку.

Запустите терминал и введите ls, чтобы увидеть это в действии:

Как составить список файлов в каталоге с параметрами

Команда ls также принимает некоторые флаги (известные также как параметры), которые представляют собой дополнительную информацию, изменяющую способ отображения файлов или каталогов в вашем терминале.

Другими словами, флаги изменяют работу команды ls:

PS: слово «содержимое», используемое в статье, относится к перечисленным файлам и каталогам, а не к фактическому содержимому файлов/каталогов ?

Список файлов в текущем рабочем каталоге

Введите команду ls, чтобы просмотреть содержимое текущего рабочего каталога:

Список файлов в другом каталоге

Введите команду ls [здесь путь к каталогу], чтобы просмотреть содержимое другого каталога:

Список файлов в корневом каталоге

Введите команду ls /, чтобы просмотреть содержимое корневого каталога:

Список файлов в родительском каталоге

Введите команду ls .., чтобы отобразить содержимое родительского каталога на один уровень выше. Используйте ls ../.. для содержимого двумя уровнями выше:

Список файлов в домашнем каталоге пользователя (/home/user)

Введите команду ls ~, чтобы просмотреть содержимое домашнего каталога пользователя:

Список только каталогов

Введите команду ls -d */, чтобы вывести список только каталогов:

Список файлов с подкаталогами

Введите команду ls *, чтобы просмотреть содержимое каталога с его подкаталогами:

Рекурсивный список файлов

Введите команду ls -R, чтобы вывести список всех файлов и каталогов с соответствующими подкаталогами до последнего файла:

Screenshot-2020-09-01-at-9.04.56-AM

Если у вас много файлов, это может занять очень много времени, так как каждый отдельный файл в каждом каталоге будет распечатан. Вместо этого вы можете указать каталог для запуска этой команды, например: ls Downloads -R

Список файлов с их размерами

Введите команду ls -s (s в нижнем регистре), чтобы отобразить файлы или каталоги с их размерами:

Список файлов в длинном формате

Введите команду ls -l, чтобы просмотреть содержимое каталога в формате таблицы со столбцами, включая:

Список файлов в длинном формате с удобочитаемыми размерами файлов

Введите команду ls -lh, чтобы вывести список файлов или каталогов в том же формате таблицы, что и выше, но с другим столбцом, представляющим размер каждого файла/каталога:

Обратите внимание, что размеры указаны в байтах (Б), мегабайтах (МБ), гигабайтах (ГБ) или терабайтах (ТБ), если размер файла или каталога превышает 1024 байта.

Список файлов, включая скрытые файлы

Введите команду ls -a, чтобы вывести список файлов или каталогов, включая скрытые файлы или каталоги. В Linux все, что начинается с . считается скрытым файлом:

Список файлов в длинном формате, включая скрытые файлы

Введите команду ls -l -a или ls -a -l или ls -la или ls -al, чтобы вывести список файлов или каталогов в табличном формате с дополнительной информацией, включая скрытые файлы или каталоги:

Список файлов и сортировка по дате и времени

Введите команду ls -t, чтобы вывести список файлов или каталогов и отсортировать их по дате последнего изменения в порядке убывания (от большего к меньшему).

Вы также можете добавить флаг -r, чтобы изменить порядок сортировки, например: ls -tr :

Список файлов и сортировка по размеру файла

Введите команду ls -S (S в верхнем регистре), чтобы получить список файлов или каталогов и отсортировать их по размеру в порядке убывания (от большего к меньшему).

Вы также можете добавить флаг -r, чтобы изменить порядок сортировки, например: ls -Sr :

Список файлов и вывод результата в файл

Введите команду ls > output.txt, чтобы напечатать вывод предыдущей команды в файл output.txt. Вы можете использовать любой из рассмотренных ранее флагов, например -la — ключевой момент здесь в том, что результат будет выведен в файл, а не в командную строку.

Затем вы можете использовать файл по своему усмотрению или записать содержимое файла с помощью cat output.txt :

Screenshot-2020-09-01-at-9.12.59-AM

.

Существует множество других команд и комбинаций, которые вы можете изучить, чтобы составить список файлов и каталогов в соответствии с вашими потребностями. Следует помнить одну вещь: возможность одновременного объединения нескольких команд.

Представьте, что вы хотите составить список файлов в длинном формате, включая скрытые файлы, и отсортировать их по размеру. Это будет команда ls -alS , представляющая собой комбинацию ls -l , ls -a и ls -S .

Если вы забыли какую-либо команду или не знаете, что делать, вы можете запустить ls --help или man ls, которые отобразят руководство со всеми возможными параметрами для команды ls:

Читайте также: