Как проверить, является ли файл пустым в Linux

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

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

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/wc("Text Counting") subgraph Lab Skills linux/echo -.-> lab-558711{{"Как проверить, является ли файл пустым в Linux"}} linux/test -.-> lab-558711{{"Как проверить, является ли файл пустым в Linux"}} linux/touch -.-> lab-558711{{"Как проверить, является ли файл пустым в Linux"}} linux/cat -.-> lab-558711{{"Как проверить, является ли файл пустым в Linux"}} linux/wc -.-> lab-558711{{"Как проверить, является ли файл пустым в Linux"}} end

Проверка размера файла с использованием test -s

На этом этапе вы узнаете, как проверить, существует ли файл и не является ли он пустым, используя команду test с опцией -s. Команда test является встроенной командой оболочки (shell), которая используется для оценки условных выражений. Часто она применяется в скриптах оболочки для принятия решений.

Опция -s в команде test проверяет, существует ли файл и имеет ли он размер больше нуля (то есть, он не пустой).

Сначала создадим пустой файл и непустой файл в каталоге ~/project.

Если терминал не открыт, откройте его. По умолчанию вы должны находиться в каталоге ~/project.

Создайте пустой файл с именем empty_file.txt:

touch empty_file.txt

Теперь создайте файл с именем non_empty_file.txt и добавьте в него некоторый текст с использованием команды echo и оператора перенаправления >. Оператор > перенаправляет вывод команды в файл. Если файл не существует, он создается. Если он существует, его содержимое перезаписывается.

echo "This file has content." > non_empty_file.txt

Теперь используем команду test -s для проверки этих файлов. Команда test не выводит результат при успешном выполнении. Она сигнализирует об успехе или неудаче с помощью кода возврата (exit status). Код возврата 0 означает успех (условие истинно), а ненулевой код возврата означает неудачу (условие ложно).

Мы можем проверить код возврата предыдущей команды, используя специальную переменную $?.

Проверьте пустой файл:

test -s empty_file.txt
echo $?

Вы должны увидеть вывод 1, что означает, что условие (файл существует и не пустой) ложно для empty_file.txt.

Теперь проверьте непустой файл:

test -s non_empty_file.txt
echo $?

Вы должны увидеть вывод 0, что означает, что условие истинно для non_empty_file.txt.

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

Нажмите Продолжить, чтобы продолжить.

Подсчет байтов в файле с использованием wc -c

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

Опция -c сообщает команде wc подсчитывать только байты.

Используем файлы, которые мы создали на предыдущем этапе: empty_file.txt и non_empty_file.txt.

Сначала подсчитаем количество байтов в файле empty_file.txt. Убедитесь, что вы находитесь в каталоге ~/project.

wc -c empty_file.txt

Вы должны увидеть вывод, похожий на следующий:

0 empty_file.txt

Это показывает, что файл empty_file.txt содержит 0 байтов, что логично, так как он пустой.

Теперь подсчитаем количество байтов в файле non_empty_file.txt:

wc -c non_empty_file.txt

Вы должны увидеть вывод, похожий на следующий:

23 non_empty_file.txt

Число 23 представляет собой количество байтов в файле "This file has content.", за которым следует символ новой строки, добавленный командой echo. Каждый символ обычно занимает один байт.

Команда wc очень полезна для быстрого получения информации о размере файлов. Вы также можете использовать команду wc без опций, чтобы получить количество строк, слов и байтов. Попробуйте выполнить команду wc non_empty_file.txt, чтобы увидеть разницу.

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

Просмотр содержимого файла с помощью команды cat

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

Используем файлы, которые мы создали на предыдущих этапах: empty_file.txt и non_empty_file.txt. Убедитесь, что вы находитесь в каталоге ~/project.

Сначала попробуем просмотреть содержимое файла empty_file.txt:

cat empty_file.txt

Поскольку файл empty_file.txt пуст, команда cat не выведет никакого результата.

Теперь просмотрим содержимое файла non_empty_file.txt:

cat non_empty_file.txt

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

This file has content.

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

Вы также можете использовать команду cat для объединения содержимого нескольких файлов и отображения их. Например, если у вас есть файлы file1.txt и file2.txt, команда cat file1.txt file2.txt выведет содержимое файла file1.txt, за которым будет следовать содержимое файла file2.txt.

Нажмите Продолжить, чтобы завершить этот практический урок (lab).

Резюме

В этом практическом уроке (lab) вы узнали, как проверить, является ли файл пустым в Linux с использованием команды test -s. Эта команда проверяет, существует ли файл и имеет ли он размер больше нуля, возвращая статус завершения 0, если утверждение истинно (файл не пуст), и 1, если ложно (файл пуст или не существует). Вы практиковали создание пустых и непустых файлов и проверку их статуса с помощью команды test -s, а также проверку статуса завершения с помощью $?.