Как скопировать файлы с определенного диапазона в другой каталог от терминала?

Я хочу скопировать файлы 50 000 - 100 000 в отдельный каталог, и я не уверен, как пойти о выполнении этого.

Для большего количества контекста я хочу создать меньший набор данных изображений (50,000) от большего (900,000). Я знаю, что первые и последние 50 000 изображений являются полностью черными, и я не хочу те в небольшом наборе данных.

0
задан 22 August 2019 в 16:11

1 ответ

Я не попробовал это такими большими количествами файлов, но я предложил бы что-то как следующее в 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 присваивают версию этому, не ограничивает соответствие простыми файлами - если это - важное различие, Вы могли бы, вероятно, использовать расширенные шарики, чтобы, по крайней мере, устранить соответствия каталога).

1
ответ дан 23 October 2019 в 04:52

Другие вопросы по тегам:

Похожие вопросы: