1

Мне нужно найти самый большой файл

  1. В списке должен быть только один файл
  2. Поиск должен работать в заданном каталоге и подкаталогах
  3. Вывод должен отображать абсолютный путь к файлу с именем файла

    find "$PARAM" -type f | xargs ls -1S | head -n 1
    

работает, но дает мне ошибки, такие как

ls: не может получить доступ через: нет такого файла или каталога

1 ответ1

5

Не ls. Позвольте find сделать эту работу за вас:

find "$PARAM" -type f -printf "%s\t%p\n" | sort -n | tail -n 1 | cut -f 2- 

Без find мы можем использовать рекурсивную глобализацию bash:

shopt -s globstar nullglob
stat -c $'%s\t%F\t%n' ** \
| awk -F'\t' '$2 == "regular file"' \
| sort -n \
| tail -n 1 \
| cut -f 3-

Статистика в OSX будет иметь разные, но эквивалентные параметры для статистики, и может выдавать другую строку для "обычного файла".

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