Този урок ще обсъди бързи методи, които можете да използвате в bash скрипт, за да получите размер на файла в определения формат, като байтове, килобайти, мегабайти или гигабайти.
Метод 1: Командата ls
Първият метод е да използвате добрата стара команда ls. Когато се сдвоява с други команди, командата ls може да вземе размера на файл.
За да приложим скрипта, имаме нужда от пълния път на файла, да изброим информацията за файла с ls и да вземем размера, като използваме команда като awk.
Примерен скрипт за това ще изглежда така:
#!/bin/bash
изхвърлен „Въведете пълния път към файла.“
Прочети файл
размер на файла= $(ls -ха $ файл | awk '{отпечатайте $ 5}')
изхвърлен '$ файлима размер на$ filesize'
Горният скрипт е сравнително прост. Използвайки командата echo и read, получаваме името на пълния път на файла.
След това използваме командата ls -lh, за да изброим всички директории и размера в четим от човека формат и накрая предаваме изхода на awk и вземем размера като 5thпроменлива.
Следва илюстрация на сценария.
chmod +x size.sh./size.sh
Ето изхода за това:
sudo ./size.shВъведете пълния път към файла
/etc/passwd
/etc/passwd има размер 2.9K
Метод 2: Командата wc
Друг метод, който можем да използваме, за да вземем размера на файл в bash скрипт, е командата wc. Командата wc връща броя на думите, размера и размера на файл в байтове.
Сега:
Както знаете, четенето на размера на файла в байтове не е много лесно. За да противодействаме на това, можем да внедрим просто меню и да поискаме от потребителя формата на размера като KB, MB и GB.
В зависимост от избрания формат, ще преобразуваме байтовете в посочения формат.
Ето примерен скрипт за прилагане на такава логика:
#!/bin/bashизхвърлен „Изберете формат на размера, използвайте числови стойности (1 за байтове, 2 за килобайти и т.н.)“
изхвърлен '''
1. Байтове
2. KiloBytes
3. MegaBytes
4. GigaBytes
'''
изхвърлен '************************************************* ********************** '
Прочетиформат
изхвърлен 'Въведете пълния път към целевия файл:'
Прочети файл
размер на файла= $(тоалетна -° С $ файл | awk „{print $ 1}“)
ако [[('$ формат'==1)]];
тогава
изхвърлен '$ файле прибл$ filesizeБайтове
elif [[('$ формат'==2)]];
тогава
прибл= $(пр.н.е. <<<'мащаб = 3;$ filesize/ 1024 ')
изхвърлен '$ файле приблизително$ kbKB '
elif [[('$ формат'==3)]];
тогава
mb= $(пр.н.е. <<<'мащаб = 6;$ filesize/ 1048576 ')
изхвърлен '$ файле приблизително$ mbMB '
elif [[('$ формат'==4)]];
тогава
gb= $(пр.н.е. <<<'мащаб = 12;$ filesize/ 1073741824 ')
изхвърлен '$ файле приблизително$ gbGB '
иначе
изхвърлен „Неправилен формат.“
изход
бъда
В горния скрипт започваме, като помолим потребителя да въведе формата на размера на файла. Bash чете този вход и го съхранява във форматната променлива.
След това подканваме потребителя за пътя на файла и съхраняваме тази променлива във файл.
Следващата стъпка извиква командата wc -c на посочения файл. Тъй като wc -c връща размера на файла в байтове и пътя на файла, използваме AWK, за да вземем само размера на файла. Съхраняваме размера в байтове като размер на файла.
И накрая, ние прилагаме прост оператор if, за да проверим дали форматът на размера е 1 (байтове), 2 (килобайта), 3 (мегабайта), 4 (гигабайт). След това използваме командата bc, за да преобразуваме размера на файла в байтове в посочения формат.
ЗАБЕЛЕЖКА: Използваме променлива скала за командата bc, за да приспособим броя на десетичните знаци за оценка.
Изображението по -долу показва как работи скриптът.
ДРУГА ЗАБЕЛЕЖКА : Горният скрипт е чист баребоун и затова е отворен за значителни подобрения. Не се колебайте да го подобрите и да го настроите според вашите нужди.
Метод 3: Използване на команда stat
Не можем да забравим командата stat. Използвайки командата stat, можем да покажем подробна информация за файл или файлова система.
Командата stat връща размера и в байтове. Можете да използвате подобна логика в горния скрипт, за да изберете формата.
Ето един прост скрипт, използващ командата stat:
#!/bin/bashизхвърлен 'Въведете пътя на файла.'
Прочети файл
размер на файла= $(състояние -° С %с$ файл)
изхвърлен '$ файле точен$ filesizeбайтове. '
В заключителната
Този урок обсъжда три метода, които можете да използвате, за да получите размера на файл с помощта на bash скрипт. Добре е да се отбележи, че Linux има изчерпателна колекция от инструменти и методи за постигане на това. Намерете този, който работи за вас и се придържайте към него.