Скрипт для поиска пустых файлов в текущем каталоге? [duplicate]

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

Empty files are:
file1.pdf
file4.cpp
example-file
Number of empty files: 3
0
задан 4 April 2017 в 18:51

3 ответа

Если Вы не должны рекурсивно вызывать (т.е. убывание в / считают пустые файлы в подкаталогах), затем, можно просто использовать стандартные тесты файла, например,

n=0
for f in *; do 
  [[ -f "$f" ]] && [[ ! -s "$f" ]] && { echo "$f"; ((n++)); } 
done 
echo "Number of empty files: $n"

От help test:

  -f FILE        True if file exists and is a regular file.
  -s FILE        True if file exists and is not empty.
1
ответ дан 3 November 2019 в 12:33

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

find /home/ -type f -size oc -exec ls {} \;

Как единицы, которые можно использовать:

b – for 512-byte blocks (this is the default if no suffix is used)
c – for bytes
w – for two-byte words
k – for Kilobytes (units of 1024 bytes)
M – for Megabytes (units of 1048576 bytes)
G – for Gigabytes (units of 1073741824 bytes)

я создал некоторые пустые файлы и сохранил его в следующем каталоге

/home/um/Documents/hello

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

cd /home/um/Documents/hello, Эта команда изменяет каталог на привет

ls -sh, Это перечисляет все файлы включая размер в человекочитаемом формате в /home/um/Documents/hello

16K empty.odt 12K empty.pdf 8.0K empty.txt 16K excel.ods

Однако, размер этих файлов находится в диапазоне 0 - 20 Кбит, я уверен, что они регистрируют, пуст

, Таким образом, возможно отсортировать все файлы на основе размера.

find /home/um/Documents/hello -type pdf -size -20k -exec ls -lh {} \;

Это вид все файлы, которые меньше, чем 20 КБ

0
ответ дан 3 November 2019 в 12:33

Можно использовать эти find команда для поиска пустых файлов

find . -maxdepth 1 -type f -empty | tee /dev/tty | wc -l

, Где

  • -maxdepth 1 только взгляд в текущем каталоге и не подкаталогах
  • -type f только ищет файлы, не каталоги
  • -empty, проверки на пустые файлы
  • tee /dev/tty отправляют имя файла на терминал, и в туалет
  • wc -l рассчитывают, файлы

Видят man find для получения дополнительной информации.

0
ответ дан 3 November 2019 в 12:33

Другие вопросы по тегам:

Похожие вопросы: