Добрый вечер. В универе дали следующее задание.
1) Написать SH скрипт, который укажет название самого большого файла среди файлов одного и того же расширения
Прошу помочь
find CHANGEDIRECTORY -mount -type f -ls 2> /dev/null | sort -rnk7 | head -1 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
sleep 10
Jaguar, можешь пояснить команды в твоём коде?
добавлено спустя 3 минуты:
Jaguar, поправил 1-ый пост. Одного и того же расширения*
find - поиск
CHANGEDIRECTORY - директория в которой искать
mount - не переходить на другие файловые системы
type - что ищем: f=файл
ls - вывод содержимого каталога
2> /dev/null все что покажет команда выкинуть в черную дыру
sort - сортировка файлов
-rnk - сначала обратить результаты сравнения, потом сравнить числовые значения строк
head вывести первые столькото строк в этом случае 1
awk вывод результата
sleep усыпить результаты чтобы консолька не закрылась на 10 сек
Jaguar, это по файлам одного расширения наибольший выбирается? Что будет, если будет в папке файлы нескольких расширений. Что такое чёрная дыра?
17 Янв 2017, 23:29Litesav, после -type f допиши -name *.txt
Будет искать все файлы с расширением txt
Litesav, я не очень линуксойд, но в моем понимании черня дыра, это такое место в линуксе, которое может принят в себя что угодно но не сохраняет это нигде. Т.е это примерно мусорник без дна, кидай туда что угодно и все в него влезет
17 Янв 2017, 23:31Вот так?
find CHANGEDIRECTORY -mount -type f -name *.txt -ls 2> /dev/null | sort -rnk7 | head -1 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
sleep 10
Litesav, в первом варианте, ищет самый большой файл с любым расширением в заданной папке. Допишешь -name *.txt будет искать тоолько txt файлы. И ему будет до фонаря на другие файлы, даже если они будут в 100 раз больше
добавлено спустя 45 секунд:
Litesav, угу)