Первоначально я задавал этот вопрос на форумах Ubuntu, и я думал, что понял это, но потом я увидел, что кто-то использует ту же команду по-другому, и теперь я не уверен, понимаю ли я ее больше,
Вот как выглядит мой стандартный каталог «Картинки»:
-rw-rw-r-- 1 mason mason 1.3M Aug 12 21:35 Beijing-trip.jpg
-rw-r--r-- 1 mason mason 26K May 27 2013 Eiffel-tour.jpg
-rw-r--r-- 1 mason mason 1.5M Sep 20 2013 work-buddies.jpg
-rw-r--r-- 1 mason mason 155K Apr 2 2013 Q1-profits.jpg
-rw-r--r-- 1 mason mason 245K Nov 27 2016 Ireland.jpg
-rw-r--r-- 1 mason mason 675K Jun 14 2014 Christmas.jpg
-rw-r--r-- 1 mason mason 210K Nov 27 2016 Thanksgiving.jpg
-rw-r--r-- 1 mason mason 348K May 27 2013 family.jpg
-rw-r--r-- 1 mason mason 805K Feb 27 2015 museum-of-fine-arts.jpg
-rw-r--r-- 1 mason mason 8.6K May 26 2013 4th-of-July.jpg
-rw-r--r-- 1 mason mason 20K Mar 9 2013 Taipei.jpg
-rw-r--r-- 1 mason mason 1.9M Jun 14 2014 Australia.jpg
-rw-r--r-- 1 mason mason 404K Aug 10 21:53 business-trip.jpg
drwxrwxr-x 2 mason mason 4.0K Mar 18 16:55 Wallpapers
-rw-r--r-- 1 mason mason 145K Jan 15 2015 family-reunion.jpg
-rw-r--r-- 1 mason mason 6.7K Apr 2 2013 friends-and-family.jpg
Согласно странице man для команды find, при использовании -size, размеры файлов округляются до обработки командой find, но то, что я хотел бы знать, на сколько?
В частности, почему find . -size -1M ничего не возвращает, тогда как find . -size -8k печатает файл friends-and-family.jpg, а также файлы каталогов? Возможно, я всегда это неправильно понял, но на форумах Ubuntu я впервые узнал, что файл причины friends-and-family.jpg не отображается на выходе после ввода find . -size -1M, потому что файл округляется до 1 МБ, и поскольку мы специально запросил файлы размером менее 1 МБ, команда find не печатает имя файла. Но если файл friends-and-family.jpg округляется до 1 МБ в первой итерации команды, то как файл friends-and-family.jpg заканчивается на выходе при вводе find . -size -8k? Должен ли файл friends-and-family.jpg снова округлить до 1 МБ? Если да, то как получится файл с размером 1 МБ, когда мы специально запрашивали файлы размером менее 8 КБ?
В дополнение к вышеуказанным вопросам мне также нужно знать, до какой величины делайте файлы выше, округленные до ввода следующих команд:
find . -size -2M
find . -size -3M
find . -size -8k
find . -size -10k
find . -size -2G
Ваша помощь очень приветствуется.
Это объясняется в man-странице (выделено мной):
Имейте в виду, что размер округляется до следующего блока. Поэтому -size -1M не эквивалентен -size -1048576c. Первый только соответствует пустым файлам, последний соответствует файлам от 1 до 1 045 575 байт.Примечание: следующий блок. С -1M файл размером 6.7k (~ 0.007M) округляется до 1M, потому что рассматриваемый блок является MB. Аналогично, с -8k размер округляется до 7k, так как текущий блок - KB, и это находится в пределах пределов.
Итак, для этих команд:
find . -size -2M
find . -size -3M
find . -size -8k
find . -size -10k
find . -size -2G
Размер 6.7k будет округлен до 1M, 1M, 7k, 7k, 1G соответственно.
Теперь, возвращаясь к цитируемому абзацу, вы видите, почему -size -1x для любой единицы x всегда будет соответствовать только пустым файлам?
Это объясняется в man-странице (выделено мной):
Имейте в виду, что размер округляется до следующего блока. Поэтому -size -1M не эквивалентен -size -1048576c. Первый только соответствует пустым файлам, последний соответствует файлам от 1 до 1 045 575 байт.Примечание: следующий блок. С -1M файл размером 6.7k (~ 0.007M) округляется до 1M, потому что рассматриваемый блок является MB. Аналогично, с -8k размер округляется до 7k, так как текущий блок - KB, и это находится в пределах пределов.
Итак, для этих команд:
find . -size -2M
find . -size -3M
find . -size -8k
find . -size -10k
find . -size -2G
Размер 6.7k будет округлен до 1M, 1M, 7k, 7k, 1G соответственно.
Теперь, возвращаясь к цитируемому абзацу, вы видите, почему -size -1x для любой единицы x всегда будет соответствовать только пустым файлам?
Это объясняется в man-странице (выделено мной):
Имейте в виду, что размер округляется до следующего блока. Поэтому -size -1M не эквивалентен -size -1048576c. Первый только соответствует пустым файлам, последний соответствует файлам от 1 до 1 045 575 байт.Примечание: следующий блок. С -1M файл размером 6.7k (~ 0.007M) округляется до 1M, потому что рассматриваемый блок является MB. Аналогично, с -8k размер округляется до 7k, так как текущий блок - KB, и это находится в пределах пределов.
Итак, для этих команд:
find . -size -2M
find . -size -3M
find . -size -8k
find . -size -10k
find . -size -2G
Размер 6.7k будет округлен до 1M, 1M, 7k, 7k, 1G соответственно.
Теперь, возвращаясь к цитируемому абзацу, вы видите, почему -size -1x для любой единицы x всегда будет соответствовать только пустым файлам?