- bash :/usr/bin/mv :Слишком длинный список аргументов

Пароль AntiX по умолчанию:demo

3
01.11.2021, 11:59
1 ответ

Вы можете сделать это в два или более шагов:

mv [a-k]*..    # or some other pattern matching a subset of the files
mv -- *..

Или в цикле,

for name in *; do
    mv -- "$name"..
done

(Но это вызовет mvдля каждого имени в отдельности.)

Или попросите findпомочь вам:

find. -mindepth 1 -maxdepth 1 -exec mv -t.. -- {} +

Это позволит найти все имена в текущем каталоге и с помощью GNU mvпереместить их в каталог выше с минимальным количеством вызовов mv.

Без GNU mv, но с find, который все еще знает не -стандартные -mindepthи -maxdepthпредикаты,

find. -mindepth 1 -maxdepth 1 -exec sh -c 'mv -- "$@"..' sh {} +

Ни один из этих вариантов не заботится о конфликтах имен. Вы должны протестировать данные, которые должным образом зарезервированы.

3
01.11.2021, 12:16

Теги

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