В этом руководстве обсуждаются быстрые методы, которые вы можете использовать в сценарии bash для получения размера файла в указанном формате, таком как байты, килобайты, мегабайты или гигабайты.
Метод 1: команда ls
Первый способ - использовать старую добрую команду ls. В сочетании с другими командами команда ls может получить размер файла.
Для реализации сценария нам нужен полный путь к файлу, информация о файле указывается с помощью ls и определяется размер с помощью такой команды, как awk.
Пример сценария для этого будет выглядеть так:
#! / bin / bash
выбросил 'Введите полный путь к файлу'.
читать файл
размер файла= $(ls -lh $ файл | awk '{печать $ 5}')
выбросил '$ файлимеет размер$ файл'
Приведенный выше сценарий относительно прост. Используя команду echo and read, мы получаем имя полного пути к файлу.
Затем мы используем команду ls -lh для вывода списка всех каталогов и их размеров в удобочитаемом формате и, наконец, передаем вывод в awk и получаем размер как 5thПеременная.
Ниже приводится иллюстрация сценария.
chmod + x size.sh./size.sh
Вот результат:
sudo ./size.shВведите полный путь к файлу
/ etc / passwd
/ etc / passwd имеет размер 2,9 КБ.
Метод 2: команда wc
Другой метод, который мы можем использовать для получения размера файла в сценарии bash, - это команда wc. Команда wc возвращает количество слов, размер и размер файла в байтах.
Теперь:
Как известно, прочитать размер файла в байтах не так-то просто. Чтобы противостоять этому, мы можем реализовать простое меню и запросить у пользователя формат размера, такой как КБ, МБ и ГБ.
В зависимости от выбранного формата мы преобразуем байты в указанный формат.
Вот пример сценария для реализации такой логики:
#! / bin / bashвыбросил «Выберите формат размера, используйте числовые значения (1 для байтов, 2 для килобайт и т. Д.)»
выбросил '''
1. Байты
2. Килобайт
3. Мегабайты
4. Гигабайт
'''
выбросил '*********************************************** * ********************** '
читатьформат
выбросил 'Введите полный путь к целевому файлу:'
читать файл
размер файла= $(Туалет -c $ файл | awk '{печать $ 1}')
если [[('$ формат'==1)]];
тогда
выбросил '$ файлпримерно$ файлБайтов
Элиф [[('$ формат'==2)]];
тогда
приблизительно= $(до н.э <<<'scale = 3;$ файл/ 1024 ')
выбросил '$ файлпримерно$ КБКБ '
Элиф [[('$ формат'==3)]];
тогда
мб= $(до н.э <<<'scale = 6;$ файл/ 1048576 ')
выбросил '$ файлпримерно$ млнМБ '
Элиф [[('$ формат'==4)]];
тогда
ГБ= $(до н.э <<<'scale = 12;$ файл/ 1073741824 ')
выбросил '$ файлпримерно$ gbГБ '
еще
выбросил 'Неверный формат'.
выход
быть
В приведенном выше сценарии мы начинаем с того, что просим пользователя ввести формат размера файла. Bash считывает этот ввод и сохраняет его в переменной формата.
Затем мы запрашиваем у пользователя путь к файлу и сохраняем эту переменную в файле.
Следующий шаг вызывает команду wc -c для указанного файла. Поскольку wc -c возвращает размер файла в байтах и путь к файлу, мы используем AWK для получения только размера файла. Мы храним размер в байтах как файл.
Наконец, мы реализуем простой оператор if, чтобы проверить, является ли формат размера 1 (байты), 2 (килобайты), 3 (мегабайты), 4 (гигабайты). Затем мы используем команду bc для преобразования размера файла в байтах в указанный формат.
ЗАМЕТКА: Мы используем переменную шкалу для команды bc, чтобы учесть количество десятичных знаков в оценке.
На изображении ниже показано, как работает скрипт.
ДРУГОЕ ПРИМЕЧАНИЕ : Вышеупомянутый сценарий является чистым базовым оборудованием и поэтому может быть значительно улучшен. Не стесняйтесь улучшать его и настраивать под свои нужды.
Метод 3: Использование команды stat
Мы не можем забыть команду stat. Используя команду stat, мы можем отобразить подробную информацию о файле или файловой системе.
Команда stat также возвращает размер в байтах. Вы можете использовать аналогичную логику в приведенном выше сценарии для выбора формата.
Вот простой скрипт, использующий команду stat:
#! / bin / bashвыбросил 'Введите путь к файлу'.
читать файл
размер файла= $(штат -c %s$ файл)
выбросил '$ файлточно$ файлбайтов. '
В заключение
В этом руководстве обсуждаются три метода, которые вы можете использовать для определения размера файла с помощью сценария bash. Стоит отметить, что в Linux есть обширный набор инструментов и методов для достижения этой цели. Найдите тот, который вам подходит, и придерживайтесь его.