Символ \uFFFD в имени каталога

Одна опция состояла бы в том, чтобы записать Ваши подсказки в stderr вместо stdout. Они будут видимы на терминале, но не в output.txt.

Другая опция не состоит в том, чтобы использовать перенаправление для Вашего вывода, но взять выходное имя файла в качестве параметра и открытый что файл самостоятельно. Можно затем использовать stdout для Ваших подсказок. (Это более гибко. Можно решить то, что переходит только к файлу, что переходит только к экрану, и потенциально что переходит к обоим.)

Если Вы не можете изменить код, единственная опция состоит в том, чтобы использовать tee или некоторая другая такая утилита. Буферизация может быть проблемой; stdbuf мог бы помочь с этим.

2
15.09.2013, 06:16
2 ответа

Необходимо выйти из символа правильно в зависимости от оболочки, которую Вы используете, если Вы можете/, хотят положиться внутреннее завершение. Например, в Bash, корректный способ выйти из него был бы:

$ ls $'Foo\uFFFDo'
Foo�o

Посмотрите раздел по заключению в кавычки в странице справочника Вашей оболочки.

1
27.01.2020, 22:23
  • 1
    Спасибо, но это не работает на меня. –  noob 16.09.2013, 23:38
  • 2
    Какую оболочку Вы используете? Вы уверены, что это - символ 0xFFFD и не что-то еще с подобным глифом? –  peterph 16.09.2013, 23:58
  • 3
    @mic, Что Вы подразумеваете “под не работой”? Вставка копии команда Вы работали и сообщение об ошибке, а также вывод LC_ALL=C ls -b. Отредактируйте свой вопрос. –  Gilles 'SO- stop being evil' 17.09.2013, 02:43

Попытка, выполняющая команду:

$ find Foo* -ls
0
27.01.2020, 22:23
  • 1
    Это - другая проблема, команда находки не произведет настоящее имя. Например, �%93 доберется Ö но я не могу получить доступ к каталогу с тем именем. –  noob 15.09.2013, 19:30

Теги

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