Этот драйвер, по-видимому, только для 12.10 и, скорее всего, не будет работать с более старым ядром в 12.04.
Вам нужно будет загрузить исходный код и перекомпилировать его для вашего ядра.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls, а количество файлов в вашем каталоге. Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать об их сортировке или распечатать любой вывод.
ls [ ! d1]
Если вы не можете распространять файлы по нескольким каталогам, можно ли каким-либо образом ограничить количество файлов для рассмотрения? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? можно каким-либо образом ограничить количество файлов, чтобы рассмотреть .
Теперь вопрос.
Вы конечно, вы имеете в виду «время создания», а не «изменить время»?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r.
So вы можете сделать это следующим образом:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat:
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%Z\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
, но это работает медленнее, чем ls -cr в моей системе .
Если вы хотите изменить время
Время модификации (mtime для краткости) означает время, в течение которого содержимое файла сохраняется
ls -t сортирует по mtime.
Измените ls -cr на ls -tr (лучший вариант) или измените stat -c $'%Z\t%n' на stat -c $'%Y\t%n'.
Если вам нужно время создания
(crtim e для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с помощью ext4. Вы можете использовать tune2fs -l <device name>, чтобы проверить это.
Затем появляется новый формат stat с именем %W, который может помочь вам здесь. Чтобы получить его, вам придется загрузить версию GNU Coreutils, выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от вашего ядра, этот Вы действительно имеете в виду «время создания», а не «изменить время» работать (не пробовали).
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%W\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
Смотрите также:
stat read crtime from ext4 a ruby script для доступа к crtime в LinuxЕсли вам нужно время создания
Для обозначения '$\t' требуется bash или zsh: он не будет работать в dash или sh на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \t на Ctrl + V, Tab и удалить ведущую $ с момента, когда начнется цитата.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls, а количество файлов в вашем каталоге. Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать об их сортировке или распечатать любой вывод.
ls [ ! d1]
Если вы не можете распространять файлы по нескольким каталогам, можно ли каким-либо образом ограничить количество файлов для рассмотрения? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? можно каким-либо образом ограничить количество файлов, чтобы рассмотреть .
Теперь вопрос.
Вы конечно, вы имеете в виду «время создания», а не «изменить время»?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r.
So вы можете сделать это следующим образом:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat:
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%Z\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
, но это работает медленнее, чем ls -cr в моей системе .
Если вы хотите изменить время
Время модификации (mtime для краткости) означает время, в течение которого содержимое файла сохраняется
ls -t сортирует по mtime.
Измените ls -cr на ls -tr (лучший вариант) или измените stat -c $'%Z\t%n' на stat -c $'%Y\t%n'.
Если вам нужно время создания
(crtim e для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с помощью ext4. Вы можете использовать tune2fs -l <device name>, чтобы проверить это.
Затем появляется новый формат stat с именем %W, который может помочь вам здесь. Чтобы получить его, вам придется загрузить версию GNU Coreutils, выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от вашего ядра, этот Вы действительно имеете в виду «время создания», а не «изменить время» работать (не пробовали).
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%W\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
Смотрите также:
stat read crtime from ext4 a ruby script для доступа к crtime в LinuxЕсли вам нужно время создания
Для обозначения '$\t' требуется bash или zsh: он не будет работать в dash или sh на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \t на Ctrl + V, Tab и удалить ведущую $ с момента, когда начнется цитата.
Вы говорите, что "ЛС передается в голову ужасно много времени".
причиной этого является не ls, но число файлов в каталоге. Если у вас есть 100 000 файлов в одном каталоге, любой способ решения этой проблемы должны были бы получить информацию о всех 100 000 файлов, прежде чем он мог даже думать об их сортировки или печать любой продукции.
общ
если Вы не можете распространять файлы в течение нескольких каталогах, вы можете сузить количество файлов для рассмотрения? например, если имена файлов содержат дату, может быть, вы можете включить подстановочные поэтому система не должна вроде 100 000 файлов. Или, может быть, они последовательно нумеруются? (Это может или не может помочь, но стоит попробовать.)
сколько раз вы пытались сделать это? есть ли способ, вы можете сузить количество файлов для рассмотрения.
теперь вопрос.
ты уверен, что "время создания" и не "изменение времени"? Большинство инструментов может отображать только "время перемен", а не "Время создания".
получение "время создания" - это очень новая вещь, которая требуется для ext4 файловой системы, и некоторые инструменты, которые не так легко установить.
[dиода d17]если вы хотите изменить время[!dиода d17]время меняться (временные метки ctime для коротких) означает время, атрибуты файла, последнего изменения.
ls -c сортировка по чтимы.
Вы хотите, чтобы выходной по возрастанию, не по убыванию, так что вам нужно сделать обратный вывод с опцией -r.
так что вы могли бы сделать это так:
ls -cr | head -n 100
более длительного решения этой же задачи, используя stat:
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%Z\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
но это работает медленнее, чем нажать [F8] на моей системе.
, если вы хотите изменить время!д18]
время модификации файла (mtime для коротких) означает, что содержимое файла Последнее изменение.
[F9] и сортирует время изменения.
изменения [F10] для того чтобы ls -tr (лучший вариант) или [F12] для [от f13].
если вам нужна создание время!д32]
(crtime для краткости)
это сложнее.
во-первых, убедитесь, директории на файловую систему, отформатированный с помощью ext4. Вы можете использовать tune2fs -l <device name>, чтобы проверить это.
то есть новый формат stat называют [f17 в], которые могут помочь вам здесь. Чтобы сделать это, вам придется скачать версию для GNU Coreutils выпущенный в октябре 2010 года или после, распакуйте его, скомпилировать его и установить его.
затем, в зависимости от вашего ядра, этот ты уверен, что "время создания", а не "изменить время" работать (не пробовал).
find . -mindepth 1 -maxdepth 1 -exec stat -c $'%W\t%n' '{}' \; |
sort -k 1n |
cut -f 2 -d $'\t' |
head -n 10 |
sed -e 's/^\.\///'
[dрайвер d41]смотрите также:[!dрайвер d41] стат читать crtime из системы ext4 сценарий Рубиновой получить доступ к crtime на Linux если вам нужна создание время!d33]
обозначение [зг19] требуется [20 фунтов] или [клавиши f21]: он не будет работать в dash или sh в Ubuntu. Если вам действительно нужно использовать эти снаряды, вам понадобится изменить какие-либо \t на Ctrl+V, в вкладке и снять ведущую [f25 привод датчика] от как раз перед открывающей кавычки.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls
, а количество файлов в вашем каталоге , Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать о их сортировке или распечатать любой вывод.
Если он слишком длинный , реальное решение состоит в том, чтобы разделить файлы по нескольким каталогам.
Если вы не можете распространять файлы по нескольким каталогам, можно каким-либо образом ограничить количество файлов, чтобы рассмотреть [ ! d28]? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? Возможно, стоит сохранить / кэшировать вывод для повторного использования .
Теперь вопрос.
Вы уверены, что имеете в виду «время создания», а не «изменить время» ?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c
сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r
.
Итак, вы можете сделать это так:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat
:
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% Z \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e '/ /\\\\\\' /
, но это работает медленнее, чем ls -cr
в моей системе.
Если вы хотите время модификации
Время модификации (короткое время mtime) означает время, в течение которого содержимое файла было изменено последним.
ls -t
сортирует по mtime.
Измените ls -cr
на ls -tr
(лучший вариант) или измените stat -c $ '% Z \ t% n '
to stat -c $'% Y \ t% n '
.
Если вам нужно время создания
(crtime для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с использованием ext4
. Вы можете использовать tune2fs -l & lt; имя устройства & gt;
, чтобы проверить это.
Затем появляется новый stat
формат, называемый % W
, который может помочь вам здесь. Чтобы получить его, вам нужно будет загрузить версию GNU Coreutils , выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от ваше ядро, это может работать (не пробовал).
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% W \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e 's /^\.\///'
См. также:
Если вы получаете ошибки о "'$ \ t'
Для обозначения '$ \ t'
требуется bash
или zsh
: он не будет работать в dash
или sh
на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \ t
на Ctrl + V, Tab и удалите ведущую $
только перед началом цитаты.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls
, а количество файлов в вашем каталоге , Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать о их сортировке или распечатать любой вывод.
Если он слишком длинный , реальное решение состоит в том, чтобы разделить файлы по нескольким каталогам.
Если вы не можете распространять файлы по нескольким каталогам, можно каким-либо образом ограничить количество файлов, чтобы рассмотреть [ ! d28]? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? Возможно, стоит сохранить / кэшировать вывод для повторного использования .
Теперь вопрос.
Вы уверены, что имеете в виду «время создания», а не «изменить время» ?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c
сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r
.
Итак, вы можете сделать это так:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat
:
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% Z \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e '/ /\\\\\\' /
, но это работает медленнее, чем ls -cr
в моей системе.
Если вы хотите время модификации
Время модификации (короткое время mtime) означает время, в течение которого содержимое файла было изменено последним.
ls -t
сортирует по mtime.
Измените ls -cr
на ls -tr
(лучший вариант) или измените stat -c $ '% Z \ t% n '
to stat -c $'% Y \ t% n '
.
Если вам нужно время создания
(crtime для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с использованием ext4
. Вы можете использовать tune2fs -l & lt; имя устройства & gt;
, чтобы проверить это.
Затем появляется новый stat
формат, называемый % W
, который может помочь вам здесь. Чтобы получить его, вам нужно будет загрузить версию GNU Coreutils , выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от ваше ядро, это может работать (не пробовал).
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% W \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e 's /^\.\///'
См. также:
Если вы получаете ошибки о "'$ \ t'
Для обозначения '$ \ t'
требуется bash
или zsh
: он не будет работать в dash
или sh
на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \ t
на Ctrl + V, Tab и удалите ведущую $
только перед началом цитаты.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls
, а количество файлов в вашем каталоге , Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать о их сортировке или распечатать любой вывод.
Если он слишком длинный , реальное решение состоит в том, чтобы разделить файлы по нескольким каталогам.
Если вы не можете распространять файлы по нескольким каталогам, можно каким-либо образом ограничить количество файлов, чтобы рассмотреть [ ! d28]? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? Возможно, стоит сохранить / кэшировать вывод для повторного использования .
Теперь вопрос.
Вы уверены, что имеете в виду «время создания», а не «изменить время» ?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c
сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r
.
Итак, вы можете сделать это так:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat
:
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% Z \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e '/ /\\\\\\' /
, но это работает медленнее, чем ls -cr
в моей системе.
Если вы хотите время модификации
Время модификации (короткое время mtime) означает время, в течение которого содержимое файла было изменено последним.
ls -t
сортирует по mtime.
Измените ls -cr
на ls -tr
(лучший вариант) или измените stat -c $ '% Z \ t% n '
to stat -c $'% Y \ t% n '
.
Если вам нужно время создания
(crtime для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с использованием ext4
. Вы можете использовать tune2fs -l & lt; имя устройства & gt;
, чтобы проверить это.
Затем появляется новый stat
формат, называемый % W
, который может помочь вам здесь. Чтобы получить его, вам нужно будет загрузить версию GNU Coreutils , выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от ваше ядро, это может работать (не пробовал).
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% W \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e 's /^\.\///'
См. также:
Если вы получаете ошибки о "'$ \ t'
Для обозначения '$ \ t'
требуется bash
или zsh
: он не будет работать в dash
или sh
на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \ t
на Ctrl + V, Tab и удалите ведущую $
только перед началом цитаты.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls
, а количество файлов в вашем каталоге , Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать о их сортировке или распечатать любой вывод.
Если он слишком длинный , реальное решение состоит в том, чтобы разделить файлы по нескольким каталогам.
Если вы не можете распространять файлы по нескольким каталогам, можно каким-либо образом ограничить количество файлов, чтобы рассмотреть [ ! d28]? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? Возможно, стоит сохранить / кэшировать вывод для повторного использования .
Теперь вопрос.
Вы уверены, что имеете в виду «время создания», а не «изменить время» ?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c
сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r
.
Итак, вы можете сделать это так:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat
:
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% Z \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e '/ /\\\\\\' /
, но это работает медленнее, чем ls -cr
в моей системе.
Если вы хотите время модификации
Время модификации (короткое время mtime) означает время, в течение которого содержимое файла было изменено последним.
ls -t
сортирует по mtime.
Измените ls -cr
на ls -tr
(лучший вариант) или измените stat -c $ '% Z \ t% n '
to stat -c $'% Y \ t% n '
.
Если вам нужно время создания
(crtime для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с использованием ext4
. Вы можете использовать tune2fs -l & lt; имя устройства & gt;
, чтобы проверить это.
Затем появляется новый stat
формат, называемый % W
, который может помочь вам здесь. Чтобы получить его, вам нужно будет загрузить версию GNU Coreutils , выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от ваше ядро, это может работать (не пробовал).
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% W \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e 's /^\.\///'
См. также:
Если вы получаете ошибки о "'$ \ t'
Для обозначения '$ \ t'
требуется bash
или zsh
: он не будет работать в dash
или sh
на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \ t
на Ctrl + V, Tab и удалите ведущую $
только перед началом цитаты.
Вы говорите, что «ls piped to head занимает очень много времени для завершения».
Причиной этого является не ls
, а количество файлов в вашем каталоге , Если у вас есть 100 000 файлов в одном каталоге, любой способ решить эту проблему должен получить информацию обо всех 100 000 файлах, прежде чем он сможет даже подумать об их сортировке или распечатать любой вывод.
Если он слишком длинный , реальное решение состоит в том, чтобы разделить файлы по нескольким каталогам.
Если вы не можете распространять файлы по нескольким каталогам, можно каким-либо образом ограничить количество файлов, чтобы рассмотреть [ ! d28]? например если имена файлов включают дату, возможно, вы можете включить подстановочный знак, чтобы системе не пришлось сортировать 100 000 файлов. Или, может быть, они последовательно пронумерованы? (Это может или не поможет, но стоит попробовать.)
Сколько раз вы пытаетесь это сделать? Возможно, стоит сохранить / кэшировать вывод для повторного использования .
Теперь вопрос.
Вы уверены, что имеете в виду «время создания», а не «изменить время» ?
Получение «времени создания» - это очень новая вещь, для которой требуется файловая система ext4 и некоторые инструменты, которые нелегко установить .
Если вы хотите изменить время
Время изменения (ctime для краткости) означает время, в течение которого атрибуты последнего файла были изменены.
ls -c
сортирует по ctime.
Вы хотите, чтобы результат был в порядке возрастания, а не в порядке убывания, поэтому вам нужно также отменить вывод с помощью опции -r
.
Итак, вы можете сделать это так:
ls -cr | head -n 100
Более длинное решение этой же проблемы с использованием stat
:
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% Z \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e '/ /\\\\\\' /
, но это работает медленнее, чем ls -cr
в моей системе.
Если вы хотите время модификации
Время модификации (короткое время mtime) означает время, в течение которого содержимое файла было изменено последним.
ls -t
сортирует по mtime.
Измените ls -cr
на ls -tr
(лучший вариант) или измените stat -c $ '% Z \ t% n '
to stat -c $'% Y \ t% n '
.
Если вам нужно время создания
(crtime для краткости)
Это сложнее.
Сначала убедитесь, что каталог находится в файловой системе, которая отформатирована с использованием ext4
. Вы можете использовать tune2fs -l & lt; имя устройства & gt;
, чтобы проверить это.
Затем появляется новый stat
формат, называемый % W
, который может помочь вам здесь. Чтобы получить его, вам нужно будет загрузить версию GNU Coreutils , выпущенную в октябре 2010 года или после нее, извлечь ее, скомпилировать и установить.
Затем, в зависимости от ваше ядро, это может работать (не пробовал).
find. -mindepth 1 -maxdepth 1 -exec stat -c $ '% W \ t% n' '{}' \; | sort -k 1n | cut -f 2 -d $ '\ t' | head -n 10 | sed -e 's /^\.\///'
См. также:
Если вы получаете ошибки о "'$ \ t'
Для обозначения '$ \ t'
требуется bash
или zsh
: он не будет работать в dash
или sh
на Ubuntu. Если вам действительно нужно использовать эти оболочки, вам нужно будет изменить любой \ t
на Ctrl + V, Tab и удалите ведущую $
только перед началом цитаты.
Другим способом, если это можно было бы сделать сегодня, может быть уместно для ваших проблем с производительностью:
I=0; ls -cr /dir/ | while read file; do I=`expr $I + 1`; echo "$file"; if [ $I == 100 ]; then break; fi; done
Это должно теоретически начать выдавать намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться много времени ls.
Другим способом, если это можно было бы сделать сегодня, может быть уместно для ваших проблем с производительностью:
I=0; ls -cr /dir/ | while read file; do I=`expr $I + 1`; echo "$file"; if [ $I == 100 ]; then break; fi; done
Это должно теоретически начать выдавать намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться много времени ls.
если нашли другой способ делать вещи сегодня могут быть связаны с вопросами производительности:
I=0; ls -cr /dir/ | while read file; do I=`expr $I + 1`; echo "$file"; if [ $I == 100 ]; then break; fi; done
, которая в теории должна начать выводить намного быстрее, но я предполагаю, что это зависит от того, где отставание идет от. Это может быть просто принимая ls долгое время для сортировки файлов.
Еще один способ, который можно сделать сегодня, может быть уместен для ваших проблем с производительностью:
I = 0; ls -cr / dir / | при чтении файла; do I = `expr $ I + 1`; echo "$ file"; если [$ I == 100]; затем перерыв; Fi; done
Это должно теоретически начать выводить намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться длительное время ls
.
Еще один способ, который можно сделать сегодня, может быть уместен для ваших проблем с производительностью:
I = 0; ls -cr / dir / | при чтении файла; do I = `expr $ I + 1`; echo "$ file"; если [$ I == 100]; затем перерыв; Fi; done
Это должно теоретически начать выдавать намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться длительное время ls
.
Еще один способ, который можно сделать сегодня, может быть уместен для ваших проблем с производительностью:
I = 0; ls -cr / dir / | при чтении файла; do I = `expr $ I + 1`; echo "$ file"; если [$ I == 100]; затем перерыв; Fi; done
Это должно теоретически начать выводить намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться длительное время ls
.
Еще один способ, который можно сделать сегодня, может быть уместен для ваших проблем с производительностью:
I = 0; ls -cr / dir / | при чтении файла; do I = `expr $ I + 1`; echo "$ file"; если [$ I == 100]; затем перерыв; Fi; done
Это должно теоретически начать выдавать намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться длительное время ls
.
Еще один способ, который можно сделать сегодня, может быть уместен для ваших проблем с производительностью:
I = 0; ls -cr / dir / | при чтении файла; do I = `expr $ I + 1`; echo "$ file"; если [$ I == 100]; затем перерыв; Fi; done
Это должно теоретически начать выводить намного быстрее, но я думаю, что это зависит от того, откуда происходит отставание. Для сортировки файлов может потребоваться длительное время ls
.
head
фактически завершает работу, как только считывает достаточно ввода. Попробуйте запустить оба с time
спереди. Версия head
в моей системе намного быстрее.
– Mikel
29 January 2011 в 02:36