Я имею дело с огромными данными изображения, и это похоже на
/root/folder1
/root/folder2
/root/folder3
/root/folder4
...
Однако на самом деле имена подпапок явно не записываются с числами.
Итак, если я хочу найти папку 230-го порядка, я должен считать одну за другой. Как мне найти ее с умом?
Спасибо!
Поскольку мы не знаем, как вы их заказываете, я просто собираюсь предположить, что это в алфавитном порядке, и в этом случае запустите следующее в терминале:
cd /enter/dir/here
ls | sort | head -n 230 | tail -n 1
Это будет сортировать ls
по алфавиту , получите только первые 230 результатов, а затем возьмите последний из этих 230.
Я обычно использую bash
, однако это одна из тех задач, для которой вы можете рассмотреть возможность перехода на zsh
, чтобы вы могли использовать его glob определители
print dir/*(/on[230])
[ 1116] Объяснение:
/
: каталоги совпадений on
: сортировка по возрастанию o rder по n ame ( в порядке убывания используйте прописные буквы O
) [230]
: ограничьте результаты заданным диапазоном Спецификатор диапазона в более общем виде имеет форму [m,n]
- вы также можете использовать [230,230]
в этом контексте.
Если вам нужно сделать это в bash
, тогда требуются внешние инструменты: вот метод, который должен быть безопасным для любых имен файлов (даже с встроенными символами новой строки):
printf '%s\0' dir/*/ | sort -z | awk -vRS='\0' 'NR==230 {print; exit}'
Предположительно Вы используете человечность, таким образом, наутилус является Вашим файловым браузером. Раз так затем CTRL+F и имя папки типа. Но поскольку Вы сказали, что папка не находится явно в числах, но можно измениться на правильном верхнем углу для показа папки деталями вместо этого значки, затем выбрал измененный по дате.