Русская кодировка в консоли

Требуется скрипт, чтобы выполнять копирование папки на другой раздел диска. Пишу в файл: cp -r /home/<user>/Desktop/Papka/ /mnt/hda1
Выполняю через консоль этот файл - всё ок. Но если у папки русское имя, например так:
cp -r /home/<user>/Desktop/Папка/ /mnt/hda1
то ругается:
can not execute binary file.
Беру в кавычки - не помогает. женский интернет журнал

и с одинарными не помогает?

А какое точное имя папки? Нет ли в имени, например, воскликцательного знака или других специальных символов bash?

попробуй вот как...
cp -r /home/<user>/Desktop/ "тут нажать Tab" и посмотри какие варианты тебе предложат, потом просто напиши пару нчальных символов нужной директории и опять таб, и так до конца пути))

Подозреваю, что при русских буквах в начало файла редактор добавляет byte order mark. Стереть их можно из какого-нить достаточно тупого по отношению к этому символу редактора, типа mcedit.

С одинарными кавычками не помогает, спецсимволов нет, даже пробовал писать только в верхнем и только в нижнем регистре.

mcedit не показывает никаких символов перед русскими, а их самих отображает корректно (не ожидал). Стирал все русские буквы и предыдущий слэш, набирал заново. Может мне более старая версия нужна, а то эта больно умная!

А может кодировка другая нужна? ALT Linux - русифицирован из коробки...

Попробуй заменить название папки вопросами(ну или любыми wildcard'ами), например "../моя папка/" = "../???\ ?????". Это должно показать, с локалью ли проблемы

Заменяю на четыре русских вопросительных знака - работает.
Заменяю на ??\? (то есть /home/<user>/Desktop/??\?/)- пишет:

cp: невозможно выполнить stat для `/home/<user>/Desktop/???/': Нет такого файла или каталога

Кстати, насчет "моя папка": в названии даже пробелов нет.

а ну-ка приведи полный цикл твоих действий, т.е.
cp -r /home/user/folder /mnt/sda1/
и потом как ты записываешь в файл и как этот файл выполняешь, т.е.
echo "cp -r /home/user/folder /mnt/sda1/" > file
chmod ug+x file && ./file
ругается на последнем этапе?

cp -r /home/<user>/Desktop/Папка/ /mnt/hda1 записываю в файл Kedit'ом или Kwrite'ом, называю его, например /1 ; затем в консоли ввожу имя этого файла энтер, соответственно выполняется его содержимое или не выполняется, а пишет: can not execute binary file..

Про chmod совсем забыл, надо бы добавить.

Сейчас ваш способ попробую.
P.S. Ах, если бы sda, а не hda )))

to Алексей Польский
Вашим способом русский кусок в файл вообще не записывается, будто я его и не набирал! ! !

тааак, тогда сделайте 2 вещи:
покажите вывод команды set | grep LC
ну и во-вторых что вам покажет терминал если сделать echo "тест....тест...тест" > file && cat file

set | grep LC выдаёт
MAILCHECK=60

echo "тест....тест...тест" > file && cat file выдает
тест....тест...тест
Да и в сам файл записалось нормально(это вышибает мне мозг!), сейчас добавлю 1 английский символ.

И с английским работает, я что-то растерян, сейчас целиком напиcал файл копирования из консоли и опять can not execute binary file.

приведите полный текст вашего файла

#!/bin/bash
в первой строчке скрипта есть?

необязательное условие раз, скриптом это назвать сложно - два

#!/bin/bash - нет, попробую. Скриптом я это назвал, ибо другого слова не знаю.

Полный текст - одна команда:
cp -r /home/user/Desktop/Папка/ /mnt/hda1
В перспективе хотелось бы ещё копировать и по сети, но у меня самба недонастроена, так что это потом.

Редактируй файл консольным редактором! Жесть..

Поставил #!/bin/bash в первую строку и все заработало.

А-га-а-а-а-!!!! :)

Да, спасибо огромное. Кстати дописал, он у меня теперь и по сетке копирует.