Как применить dos2unix рекурсивно ко всему содержимому папки?

Почему не было ffmpeg в репо?

Некоторое время после перехода Debian на Libav был доступен так называемый "ffmpeg", но он был не от FFmpeg. Вероятно, это можно лучше всего объяснить с помощью приблизительной хронологии произошедшего:

  1. Libav отделился от FFmpeg и сохранил двоичное имя ffmpeg (он также сохранил имена библиотек, а имя "libav" уже использовалось FFmpeg как собирательное существительное для библиотек: libavcodec, libavformat, libavutils и т.д.).

  2. Тогдашний сопровождающий пакета Debian ffmpeg, член форка Libav, перевёл Debian на использование Libav.

  3. Libav в конечном итоге устарел/переименовал свой ffmpeg в avconv, затем в конечном итоге удалил поддельный "ffmpeg", но некоторые последующие пользователи, такие как Ubuntu, сохранили старый, поддельный "ffmpeg" по причинам "совместимости и переходного периода" в течение некоторого времени.

  4. Debian/Ubuntu, в конце концов, удалили глючный, старый, мертвый, фальшивый "ffmpeg".

  5. FFmpeg вернулся в Debian stable (jessie-backports) и Ubuntu Vivid 15.04.

  6. Debian/Ubuntu отказываются от Libav.

В настоящее время вы находитесь между шагами 4 и 5. Обновление до более нового выпуска вашего дистрибутива позволит вам установить настоящий ffmpeg из репозитория.

Есть ли причина прекратить использование ffmpeg?

Разработка FFmpeg очень активна, и теперь, когда Libav потерял своих основных пользователей, я думаю, вы можете задать этот вопрос о avconv вместо него.

Прочее

... лидер FFmpeg покинул проект.

Michael Niedermayer все еще довольно активен. Он просто устал от некоторых обязанностей администратора и политики и ушел с поста лидера. Также это был жест в сторону разработчиков Libav как потенциальный шаг к воссоединению с разработчиками Libav.

11
28.04.2016, 21:51
2 ответа

Для меня было важно пропустить двоичные файлы и скрытые файлы:

Этот вариант хорошо сработал для меня:

find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k

Что переводится как: рекурсивно найти все нескрытые файлы в текущем каталоге, затем с помощью grep вывести список всех не -binary (-I) непустые файлы, затем передать их в xargs (разделенные символами новой строки) по одному файлу за раз в dos2unix и сохранить исходную метку времени.

См. также:

https://github.com/mdolidon/endlines

5
27.01.2020, 19:57

Использованиеbash:

shopt -s globstar
dos2unix **

Параметр оболочки globstarв bashпозволяет использовать глобус **. Это работает точно так же, как *, но совпадает с /в путях (, следовательно, совпадает с именами и в подкаталогах ). Это будет работать в каталоге, содержащем умеренное количество файлов в его подкаталогах (, а не много тысяч ).

В оболочках zshи yashset -o extended-globвyash)вы должны сделать

dos2unix **/*
3
27.01.2020, 19:57

Теги

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