LINUX.ORG.RU

ничего себе ты мусора в source напихал

anonymous
()

что тогда передается в mv?

Выполни echo mv source/* target/, увидишь.

dexpl ★★★★★
()

Ведь параметры source/* и target/ должны передаваться в mv?

Да, но пере этим bash (и именно он) раскрывает звёздочки и поставляет вместо них имена файлов. У тебя видать файлов там слишком дофига, вот и получается что аргумент слишком длинный.

Рекомендую mc, если не хочешь возиться с find .

Kroz ★★★★★
()
Ответ на: комментарий от Deleted

Ну в bash придётся обойтись, да. Разница только в количестве букв.

anonymous
()

find source/ | xargs -n 30 mv -t target/

Ну и упорядочить эту помойку неплохо бы.

anonymous
()

Там всё нормально

У меня нет ошибки

[root@localhost ~]# mkdir source target
[root@localhost ~]# >source/1.txt
[root@localhost ~]# mv source/* target/
[root@localhost ~]# ll target/
total 0
-rw-r--r--. 1 root root 0 Aug 30 03:04 1.txt
[root@localhost ~]#

iljuase ★★★
()

Ведь параметры source/* и target/ должны передаваться в mv?

Нет.

А если нет, то что тогда передается в mv?

$ set -o xtrace
$ mv source/* target/
Zmicier ★★★★★
()
Ответ на: комментарий от zolden

Видимо так сделали для того чтобы в каждой программе не делать раскрытие звездочек.

Но если бы mv сам раскрывал звездочки, то такой проблемы бы не было.

Turako
() автор топика
find source/ -print0 | xargs -0 mv -t dest/


xargs сам знает, сколько за раз можно передать. Полезно бывает использовать разделителем нулевой символ.

bormant ★★★★★
()
Ответ на: комментарий от Turako

Представь себе замечательный мир, где каждая программа сама выполняет глоббинг. Каждая по-своему.

anonymous
()
Ответ на: комментарий от anonymous

Это понятно. Но все же «Argument list too long» это какой-то архитектурный баг. Как то по другому надо было сделать, мне кажется.

Turako
() автор топика
Ответ на: комментарий от Turako

Напиши разработчикам ядра, это они сделали. Константа называется ARG_MAX, время от времени её увеличивают.

anonymous
()
Ответ на: комментарий от Turako

Да, так и есть. Можешь предложить остроумное решение, всем будет только лучше. Еще PATH_MAX бы вывести

Обычно, корни таких констант идут от структур данных, например, размеров поля «размер» , которое без заморочек делают фиксированным

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.