From 7cdceadae4be75a1cc450f380e01b667ef5ca7d5 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 25 Jan 2021 01:47:32 +0300 Subject: [PATCH] =?utf8?q?=D0=9A=D0=B0=D0=BA=20=D0=BD=D0=B0=D1=87=D0=B0?= =?utf8?q?=D1=82=D1=8C=20=D0=BB=D1=8E=D0=B1=D0=B8=D1=82=D1=8C=20shell=20sc?= =?utf8?q?ript:=20=D1=83=D0=B7=D0=BD=D0=B0=D1=82=D1=8C=20=D1=80=D0=B0?= =?utf8?q?=D0=B7=D0=BC=D0=B5=D1=80=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://unix.stackexchange.com/questions/16640/how-can-i-get-the-size-of-a-file-in-a-bash-script Возможно сейчас поздно и поэтому голова плохо соображает, но я осознал что не знаю как кроссплатформенно узнать размер файла в shell-е. Парсить ls или менять ему формат -- не серьёзно, ведь есть же stat утилита. Которую я и использовал прежде. А сегодня проверил такой же ли у неё способ задания формата вывода как и в GNU? Фиг там! И у ls разный, и у stat. Пошёл по быстрому искать ответ всё ли так плохо. Да, всё плохо. Много людей умудряются не понимать для чего нужен du. Если у ls всё же стандартизованный вывод (ага, нужно выставлять POSIXLY_CORRECT для GNU), то он бы мог быть портируемым вариантом. "wc -c" мне решение тоже приходило в голову, но... оно не показывает размер файла из иноды, а действительно считает кол-во символов сколько из него можно прочитать. В итоге, пока остановился на perl -e 'print -s $ARGV[0]', хотя тут мог бы быть и *awk и хоть python однострочник. Удивительно, сколько лет можно жить, работать с shell, но на такие простейшие вопросы не знать ответа простого и чёткого. -- 2.48.1