Я хочу скопировать файлы 50 000 - 100 000 в отдельный каталог, и я не уверен, как пойти о выполнении этого.
Для большего количества контекста я хочу создать меньший набор данных изображений (50,000) от большего (900,000). Я знаю, что первые и последние 50 000 изображений являются полностью черными, и я не хочу те в небольшом наборе данных.
Я не попробовал это такими большими количествами файлов, но я предложил бы что-то как следующее в zsh
:
print -N ./*(.[50000,100000]) | xargs -r0 cp -t path/to/target/dir/
./*(.)
квалифицированный шарик, оценивая к списку простых файлов в текущем каталоге, отсортированном в лексическом порядке, определенном Вашей локалью; [m,n]
выбирает диапазон от того списка. -N
причины print
для использования пустого разделителя, подходящего для передачи xargs -0
, можно реализовать похожий метод в оболочках, которые не обеспечивают спецификаторы шарика при помощи внешней программы для фильтрации списка - например, в bash
:
printf '%s\0' ./* | sed -nz '50000,100000p' | xargs -r0 cp -t path/to/target/dir/
(хотя, в отличие от этого, zsh
присваивают версию этому, не ограничивает соответствие простыми файлами - если это - важное различие, Вы могли бы, вероятно, использовать расширенные шарики, чтобы, по крайней мере, устранить соответствия каталога).