Используйте ls -lt |grep '^-' |head -n N
просто внутри цикла.
for DIR in /path/to/*; do
if [ -d "$DIR"]; then
ls -lt "$DIR/*.csv" |grep '^-' |head -n N
fi
done
Где N — количество новейших файлов, и вы можете указать, какое количество файлов будет отображаться в результате для каждого каталога. см. man ls .
Если вы не укажете O_DIRECT
, то запросы ввода/вывода отправляются в кэш страниц. Когда этот кеш записи записывается обратно на устройство, ядро по возможности использует большие записи.
(Я не уверен, будут ли они считаться объединенными записями или нет.)
Размер операций записи, генерируемых управлением памятью ядра, может быть ограничен рядом различных переменных.
В частности:Почему размер моих запросов ввода-вывода ограничен примерно 512 КБ?
По приведенной выше ссылке очень длинный анализ. Но в результате, когда ваша физическая оперативная память становится фрагментированной, ядро может найти для использования только отдельные страницы, а не физически смежные прогоны нескольких страниц. Затем размер отдельного IO был ограничен максимальным размером «списка разброса/сбора».