Чи є спосіб застосувати dos2unixкоманду так, щоб вона працювала проти всіх файлів у папці та підпапках?
man dos2unixне відображає жодних -rчи подібних варіантів, які б зробили це прямо?
Чи є спосіб застосувати dos2unixкоманду так, щоб вона працювала проти всіх файлів у папці та підпапках?
man dos2unixне відображає жодних -rчи подібних варіантів, які б зробили це прямо?
Відповіді:
Пропуск бінарних файлів та прихованих файлів для мене був важливим:
Цей добре працював для мене:
find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k
Що означає: пошук усіх не прихованих файлів рекурсивно у поточному каталозі, потім, використовуючи grep, список усіх небінарних (-I) непорожніх файлів, а потім передавання їх у xargs (відмежовані новими рядками) по одному файлу за раз dos2unix і зберегти початкову мітку часу.
Дивись також:
Ви можете використовувати find, щоб знайти всі файли в структурі каталогу, які потрібно запустити за допомогою команди dos2unix
find /path/to/the/files -type f -exec dos2unix {} \;
Погляньте на сторінки чоловіків, щоб знайти, є багато варіантів, які ви можете використовувати для визначення того, що оцінюється
Використовуйте підстановку. Ось так: (Якщо ви в папці)
dos2unix *
або якщо ви знаходитесь поза папкою:
dos2unix /path/to/folder/*
Використання bash:
shopt -s globstar
dos2unix **
Опція globstarоболонки в bashдає змогу використовувати **глобус. Це працює так само, *але збігається /в назви шляхів (отже, і відповідність імен у підкаталогах). Це працюватиме в каталозі, що містить помірну кількість файлів у його підкаталогах (не багато тисяч).
В zshі yashраковин (з set -o extended-globв yash), ви б зробили
dos2unix **/*
dos2unixпропускає двійкові файли за замовчуванням.