В сценарии оболочки (интерпретатор / bin / bash) в Debian Squeeze работает следующее:
find ~/bin/ '!' -type d -exec dos2unix {} \;
Теперь я знаю, что по какой-то причине это dos2unix
было переименовано fromdos
в Ubuntu, поэтому я пытаюсь запустить:
find ~/bin/ '!' -type d -exec fromdos {} \;
Хотя это работает в Debian, в Ubuntu это выдает:
fromdos: Unable to access file todos.
fromdos: Unable to access file fromdos.
Как мне обойти это, и в чем проблема?
~/bin/
упомянутое точно одинаковым в обоих случаях? Не просто тот же список файлов и содержимого, но то же самое основное устройство / файловая система?find ~/bin/ '!' -type d
само по себе, кажется, делает то же самое в обоих случаях.Ответы:
В моей системе Ubuntu
/usr/bin/{{to,unix2}dos,dos2unix}
все ссылки наfromdos
.Попробуйте
type -a fromdos
посмотреть, есть ли псевдоним, функция или скрипт, который переопределяет двоичный файл/usr/bin
.Также попробуйте указать полный путь в вашей
find
команде:Проверьте, нет ли в вашем
~/bin
каталоге сломанной символической ссылки . Есть ли какие-нибудь ссылки в каталогах~/bin
?fromdos
Появляющееся сообщение об ошибке пытается обработать файл с именем fromdos.источник
dos2unix
это не символическая ссылка в моей установке.type -a fromdos
приводит кfromdos is /usr/bin/fromdos
иfind ~/bin/ '!' -type d -exec /usr/bin/fromdos {} \;
приводит к той же ошибке о невозможности найти файл todos / fromdos. Там нет символических ссылок в~/bin
.file /usr/bin/fromdos
говорит "ELF ..." или что-то еще? Что говоритfromdos -V
(заглавная "V" - версия)? Какой вывод вы получите от своейfind
команды, если вы используете подробный параметрfromdos
(fromdos -v
- (строчная буква "v"))?