1

У меня есть сценарий оболочки, который был написан для Mac OSX и теперь портирован на Linux-машину. У меня нет доступа к машине Linux (сейчас я буду настраивать виртуальную машину). Некоторые операторы в сценарии оболочки не выполняются, что ожидается. У меня есть оператор команды find, используемый для поиска файлов размером более 1 МБ:

oversize=`find "$somePath" -maxdepth 1 -size +1048576c -iname "*.gz" -print0 | xargs -0 ls -l | wc -l`    
oversize=$((oversize * 1))
if [ $oversize -eq 0 ];then
  echo "OK"
else  
  echo "Limit exceeded"

fi

Есть идеи, если что-то не так с этим утверждением? Он помечал файл размером 1045400 байт.

1 ответ1

1

У меня есть оператор команды find, используемый для поиска файлов размером более 1 МБ:

Для этого используйте -size +1M

oversize=`find -maxdepth 2 -size +1M -exec ls -lh {} \; | wc -l`
oversize=$((oversize * 1))
echo size of oversize = $oversize
if [ $oversize -eq 0 ];then
  echo "OK"
else  
  echo "Limit exceeded"

fi

Это дает вывод

размер больше = 96

Лимит превышен

Это правда верно?

Обновить

Смотрите здесь для меня, что дает правильный вывод

[max@localhost ~]$ find Downloads/ -maxdepth 1 -size +1048576c -name "*.pdf" -print0 | xargs -0 ls -l | wc -l
9
[max@localhost ~]$ find Downloads/ -maxdepth 1 -size +1048576c -name "*.pdf" -print0 | xargs -0 ls -l
-rw-rw-r-- 1 max max  1443224 Oct 11 17:04 Downloads/------.pdf
-rw-rw-r-- 1 max max  1330293 Sep 29 15:27 Downloads/-------.pdf
-rw-rw-r-- 1 max max 12825921 Oct  1 18:49 Downloads/--------.pdf
-rw-rw-r-- 1 max max  8197602 Sep 29 15:46 Downloads/--------.pdf
-rw-rw-r-- 1 max max  1604859 Oct 11 17:23 Downloads/------.pdf
-rw-rw-r-- 1 max max  2792931 Oct 24 11:27 Downloads/--------.pdf
-rw-rw-r-- 1 max max  5382152 Oct  9 14:52 Downloads/----------.pdf
-rw-rw-r-- 1 max max  1113609 Sep 29 15:46 Downloads/--------.pdf
-rw-rw-r-- 1 max max  9198710 Sep 29 15:40 Downloads/---------.pdf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .