перемещать файлы в директории hadoop с указанным количеством файлов

Я хочу своевременно перемещать файлы в папке hadoop.

Каталог hadoop содержит 1000 файлов с одинаковым расширением. Я хочу переместить 100 из них каждые 10 минут. Я могу настроить работу cron для перемещения файлов каждые 10 минут, но я не знаю, как указать количество файлов, которые нужно переместить.

hdfs dfs -ls /src/ | tail -100 | xargs hdfs dfs -mv {} / dest/

Любая команда для использования?

Спасибо заранее.

1
задан 19 June 2016 в 22:40

2 ответа

Можно использовать mv как это: mv-t предназначаются для file1 file2 file3...

ls | head -n 100 | xargs mv -t destination
2
ответ дан 20 June 2016 в 08:40
  • 1
    Это может быть проблемой, если только части сценария должны быть выполнены с sudo, и остальные не должны быть (например, создавание файлов с корневым владением в пользовательской папке может быть проблематичным). – JAB 5 November 2017 в 10:16

Что относительно того, чтобы использовать сценарий как это:

#!/bin/bash

Source="/where/they/are/now/*"
Destination="/where/they/will/go"

while true; do
  count=0
  for file in $Source; do
    if [ $((count++)) -eq 100 ];then
      break
    else mv "$file" "$Destination"
    fi
  done
  sleep 10m
done
1
ответ дан 20 June 2016 в 08:40
  • 1
    @jab можно сократить использование su "$(logname)", например, su "$(logname)" -c 'echo $USER' – wjandrea 5 November 2017 в 10:32

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

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