Я хочу сортировать подкаталоги внутри главного каталога по размеру, а также сортировать файлы внутри подкаталогов по дате создания файла через терминал. Возможно ли это?
Edit: После того, как я отсортировал файлы внутри папки, следуя приведенным ниже ответам, они не переставляются при просмотре через nautilus. Я хочу, чтобы файлы переставлялись при просмотре через nautilus.
Если вы хотите отсортировать подкаталоги / файлы внутри каталога по размеру, введите в терминале
gsettings set org.gnome.nautilus.preferences default-sort-order "size"
Чтобы отсортировать подкаталоги / файлы по времени изменения файла,
gsettings set org.gnome.nautilus.preferences default-sort-order "mtime"
Вы также можете сортировать в соответствии с name
и type
. Но вы не можете установить два значения одновременно, например, одно для каталога и другое для подкаталогов. Нет проблем изменить значения в любое время. Изменение вступит в силу немедленно для всех каталогов.
Также вы можете сортировать в обратном порядке для size
, name
, modification time
или type
. Для этого введите в терминале,
gsettings set org.gnome.nautilus.preferences default-sort-in-reverse-order true
Для сортировки файлов по размеру вы можете использовать следующую команду:
ls -Sl
Сортировать результаты по дате создания немного сложнее. Смотрите следующий пост в этом смысле:
Откройте терминал и введите
du -sk * | sort -rn
. Я не думаю, что это возможно без цикла - по крайней мере, без bash - но если вы хотите использовать циклы, вот пример, который поможет вам выбрать правильный путь.
#!/bin/bash
for dir in $(du -sh */ | sort -rh | cut -f2); do
echo "*** $(du -sh $dir) ***"
ls -l --sort=time $dir
done
Этот скрипт…
du -sh
, сортируется по размеру - cut
просто форматирует выходные данные du -sh
) и перечисляет его содержимое, отсортированное по размеру (ls -l --sort=time
).