Как проверить, пуст ли каталог в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Затем вы изучите команду find для рекурсивного поиска файлов в каталоге, что представляет собой еще один способ проверить наличие содержимого. Наконец, вы научитесь использовать команду du -sh для проверки размера каталога, что дает быстрый способ подтвердить, содержит ли он какие-либо данные. Завершив эти шаги, вы получите практические навыки для эффективной проверки пустоты каталогов в среде Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/find("File Searching") linux/SystemInformationandMonitoringGroup -.-> linux/du("File Space Estimating") subgraph Lab Skills linux/ls -.-> lab-558706{{"Как проверить, пуст ли каталог в Linux"}} linux/touch -.-> lab-558706{{"Как проверить, пуст ли каталог в Linux"}} linux/find -.-> lab-558706{{"Как проверить, пуст ли каталог в Linux"}} linux/du -.-> lab-558706{{"Как проверить, пуст ли каталог в Linux"}} end

Вывод содержимого каталога с помощью команды ls -a

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

По умолчанию команда ls показывает видимые файлы и каталоги в текущем каталоге. Текущим каталогом является директория, в которой вы в данный момент работаете. Когда вы открываете терминал в этом практическом занятии (лабораторной работе), текущим каталогом является /home/labex/project.

Попробуем базовую команду ls. Введите следующую команду в терминале и нажмите Enter:

ls

Вы можете увидеть некоторый вывод или ничего, если каталог пуст.

Теперь исследуем полезную опцию для команды ls: -a. Опция -a означает "все" и сообщает команде ls показать все файлы, включая скрытые. В Linux файлы и каталоги, имена которых начинаются с точки (.), считаются скрытыми. Конфигурационные файлы часто скрываются таким образом.

Введите следующую команду и нажмите Enter:

ls -a

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

.
..
.zsh_history
  • . представляет текущий каталог.
  • .. представляет родительский каталог (каталог на один уровень выше).
  • .zsh_history - это скрытый файл, в котором хранится история ваших команд.

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

Практикуйте использование команд ls и ls -a в каталоге ~/project. Обратите внимание на различия в выводе.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Поиск файлов с помощью команды find

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

Базовый синтаксис команды find выглядит следующим образом:

find [starting_point] [expression]
  • [starting_point] - это каталог, с которого начинается поиск. . означает текущий каталог.
  • [expression] определяет, что вы ищете (например, имя файла, тип, размер).

Создадим простой файл для поиска. Мы будем использовать команду touch, которая создает пустой файл. Убедитесь, что вы находитесь в каталоге ~/project.

touch my_document.txt

Теперь используем команду find для поиска только что созданного файла. Мы начнем поиск в текущем каталоге (.) и будем искать файл с именем my_document.txt.

find . -name my_document.txt

Опция -name сообщает команде find искать записи с определенным именем.

В качестве вывода вы должны увидеть путь к файлу:

./my_document.txt

Это подтверждает, что команда find успешно нашла файл.

Команда find очень мощная и имеет множество опций для поиска по различным критериям, таким как тип файла (-type f для файла, -type d для каталога), размер, время изменения и права доступа.

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

find . -type d

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

Попробуйте использовать команду find в каталоге ~/project. Создайте еще один файл или каталог, а затем используйте команду find для его поиска.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка размера каталога с помощью команды du -sh

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

Команда du расшифровывается как "disk usage" (использование диска). По умолчанию команда du показывает использование дискового пространства каждого файла и подкаталога в заданном каталоге в блоках. Этот вывод может быть довольно детальным.

Попробуем базовую команду du в каталоге ~/project:

du

Вы увидите вывод, показывающий размер файла my_document.txt (который, вероятно, равен 0, так как он пустой), и общий размер текущего каталога.

Для получения более удобного для чтения вывода мы можем использовать опции с командой du. Две распространенные опции:

  • -s: Сводка. Эта опция отображает только общий размер для указанного каталога, а не перечисляет каждый файл и подкаталог.
  • -h: Человекочитаемый формат. Эта опция отображает размеры в формате, который легче для человека читать (например, КБ, МБ, ГБ).

Объединим эти опции, чтобы получить сводку об использовании дискового пространства каталога ~/project в человекочитаемом формате.

du -sh .

Точка (.) в конце указывает, что мы хотим проверить использование дискового пространства текущего каталога.

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

4.0K    .

Это означает, что текущий каталог (.) занимает приблизительно 4,0 килобайта пространства. Точный размер может немного отличаться в зависимости от системы и количества скрытых файлов.

Команда du -sh - это быстрый способ узнать общий размер каталога. Вы также можете указать другой путь к каталогу вместо ., чтобы проверить размер других каталогов.

Например, чтобы проверить размер вашего домашнего каталога (~), вы можете использовать следующую команду:

du -sh ~

Практикуйте использование команды du -sh для различных каталогов, если вы создали их в этом практическом занятии (лабораторной работе).

Нажмите Продолжить, чтобы завершить этот этап и практическое занятие.

Резюме

В этом практическом занятии (лабораторной работе) вы научились проверять, пуст ли каталог в Linux, используя несколько фундаментальных команд. Вы начали с использования команды ls -a для вывода всего содержимого, включая скрытые файлы и специальные записи . (текущий каталог) и .. (родительский каталог), которые всегда присутствуют.

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