Pull to refresh

Comments 22

find + enca уже не катят? ИМХО задача решается в одну строчку.
UFO just landed and posted this here
Про enca не знал, спасибо (недавно начал использовать Linux). Задача была — привести все файлы в нативный для Linux вид — т.е. автоматизировать процесс миграции.
UFO just landed and posted this here
UFO just landed and posted this here
Кавычки все-таки лучше оставить, а то мало ли что там в имени файла.
UFO just landed and posted this here
Если уж printf — то что-то типа
printf 'convert "%s" to "%s"\n' "$old_filename" "$new_filename"

Иначе, если использовать интерполяцию средствами sh (т.е. с двойными кавычками) — толком ничем и не будет отличаться от echo.
Про echo знаю. printf использовал, т.к. X/Open призывают применять его вместо echo [1, с. 75]. Когда писал, как то не задумывался, printf — привычка с Си.
UFO just landed and posted this here
Про X/Open в википедии есть. Да на самом деле в книге [1] написано, что все юзают echo где это возможно, несмотря на реккомендации X/Open. А я когда писал — просто не задумывался, хотя да — читаемость с echo лучше
UFO just landed and posted this here
лучше растащить «функционал» на два отдельных «скрипта».

один бы менял кодировку в файле плейлиста:
enca -L ru -x UTF8 "${MY_LOVELY_PLAYLISTFILE}"

другой раздавал правильные права в коллекции:
find "${MY_LOVELY_MP3FILES_PATH}" -iname "*.mp3" -type f -exec chmod -x "{}" ";"
>>Поскольку музыка была скопирована с NTFS раздела на раздел ext4 – кодировка всех файлов (плей-листов) была CP1251
Не вижу связи.
Или при копировании текстовых файлов с NTFS на ext4 у вас кодировочка на лету меняется? (всего от линукса ожидал, но чтобы такое...)
Я из-за подобных выкрутасов всегда использую копирование в двоичном режиме (проблемы были обычно с ftp).
> Не вижу связи.
Её там и нет, связь была между NTFS и правами на исполнение, читайте внимательней.
Сказано же, что кодировка у этих файлов изначально была cp1251, Линукс тут нипричём.
Хм, а если кодировка у файлов и так UTF8 или UTF16 то при создании плей листов она и останется. Так зачем тогда что-то городить, если уже есть куча программ и скриптов, чтобы удалять CP1251 и писать теги в UTF?
Кстати, у chmod есть отличный ключ -R и модификатор X специально для директорий, так что весь тот велосипед зря написан.
На всякий случай пример:
chmod -x+X+r-w,u+w -R dir

-x убирает право на исполнение у файлов,
+X при этом добавляет исполняемый бит на директории,
+r разрешает всем чтение,
-w запрещает всем запись,
u+w при этом разрешает запись владельцу

Ключ -R включает рекурсивный обход
Вся статья один сплошной велосипед. Задача, imho, не стоит выеденного яйца и решается курением манов за 5 минут.

ну а чего, давайте все однострочники постить.

я вот сегодня у себя искал пропавшие после падения фс системные файлы — тоже можно написать скрипт на сто строк с пятью режимами работы.
Я, конечно, понимаю что вы типа крутой линуксоид и читать вам не интересно. Ну так и не читайте. Раз пост на главной, значит он кому-то нужен.

ЗЫ Спасибо тем кто подсказал как сделать лучше
кстати, давайте :)
однострочники, они как хайку.

мне вот эта статья пригождалась не раз.

а задача да, решается в одну строчку.
Sign up to leave a comment.

Articles