Я хочу решить проблему «перечислить 10 самых последних файлов в текущем каталоге размером более 20 МБ».
С ls
я могу сделать:
ls -Shal |head
получить 10 самых больших файлов и:
ls -halt |head
чтобы получить топ 10 самых последних файлов
С помощью find я могу сделать:
find . -size +20M
Чтобы вывести список всех файлов размером более 20 МБ в текущем каталоге (и подкаталогах, которые мне не нужны).
Есть ли способ перечислить десятку самых последних файлов определенного размера, желательно используя ls
?
file
«s-ls
команды, специальные символы будут напечатаны в виде обратной косой маскирование символов:find . -maxdepth 1 -size +20M -printf "%T@ " -ls | sort -nr | head -n 20 | sed 's/[^ ]\+ //'
. Кроме того, формат будет выглядеть такls -l
, как и EoghanM-l
.printf
работает только для определенных дистрибутивов GNU.%T+
генерирует удобочитаемые временные метки, подобные2018-11-06+13:37:54.4606466460
которым также можно сортироватьsort
(без-n
), см .: unix.stackexchange.com/questions/29899/…ЗШ в GLOB отборочные сделать это легко. Спецификатор
.
выбирает только обычные файлы,Lm+20
выбирает файлы размером не менее 20 МБ плюс один байт; чтобы включить файлы размером ровно 20 МБ, используйтеL+20971519
. Затемom
сортирует по уменьшению времени модификации и[1,10]
ограничивает расширение первыми 10 совпадениями. Вам все еще нужна-t
опция,ls
если вы хотите перечислить файлы по дате; или вы можете передать файлы какой-то другой команде (младшей первой). Чтобы сначала передать файлы другой команде с самым старым файлом, используйтеOm
сортировку, увеличив время модификации и[-10,-1]
извлекая последние 10 совпадений.источник
Я думаю, что это может быть лучшим способом решения проблемы ...
Чтобы избавиться от любых ошибок, когда find пытается получить доступ к файлам, у которых у вас нет прав на чтение, вы можете захотеть добавить
источник
При этом будут напечатаны только указанные 10 файлов, независимо от того, есть ли в именах файлов символы новой строки Использует файловую систему
inodes
источник
Спасибо за ответы на все вопросы. То, что я пошел на это следующее:
Хотя он отказывается от 20 мегабайт в пользу чего-либо более мегабайта (и меньше гигабайта), он легко запоминается и сохраняет читаемый человеком элемент размеров файлов.
источник
ls
, он показывает представление файлов, ничего более. Для простых имен файлов вывод в большинстве случаев эквивалентен имени файла, но вы не должны полагаться на него.