LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Выберет, но так как тот вариант не был полностью рабочим, я тоже не особо аккуратно делал. Вообще, что-то в таком стиле надо:

shopt -s globstar
for file in /srv/**/*; do
    if [ -d "$file" ]; then
        mkdir -p /home/iskatel/newdir/"$file"
    else
        cat "$file" > /home/iskatel/newdir/"$file"
    fi
done

# либо

shopt -s globstar
for file in /srv/**/*/; do mkdir -p /home/iskatel/newdir/"$file"; done
for file in /srv/**/*; do cat "$file" > /home/iskatel/newdir/"$file"; done
Ещё судя по ошибке, кажется, стоит воспользоваться ulimit, а потом уже нормально cp сделать. Хотя ограничение может и в другом месте накладываться (и может проще от рута с сохранением атрибутов скопировать).

Исходная версия xaizek, :

Выберет, но так как тот вариант не был полностью рабочим, я тоже не особо аккуратно делал. Вообще, что-то в таком стиле надо:

shopt -s globstar
for file in /srv/**/*; do
    if [ -d "$file" ]; then
        mkdir -p /home/iskatel/newdir/"$file"
    else
        cat "$file" > /home/iskatel/newdir/"$file"
    fi
done

# либо

shopt -s globstar
for file in /srv/**/*/; do mkdir -p /home/iskatel/newdir/"$file"; done
for file in /srv/**/*; do cat "$file" > /home/iskatel/newdir/"$file"; done
Вообще судя по ошибке, кажется, стоит воспользоваться ulimit, а потом уже нормально cp сделать. Хотя ограничение может и в другом месте накладываться (и может проще от рута с сохранением атрибутов скопировать).