Apakah ada cara untuk menerapkan dos2unixperintah sehingga berjalan terhadap semua file dalam folder dan subfoldernya?
man dos2unixtidak menunjukkan -ropsi apa pun atau serupa yang akan membuat ini mudah?
Apakah ada cara untuk menerapkan dos2unixperintah sehingga berjalan terhadap semua file dalam folder dan subfoldernya?
man dos2unixtidak menunjukkan -ropsi apa pun atau serupa yang akan membuat ini mudah?
Jawaban:
Melewatkan binari dan file tersembunyi penting bagi saya:
Yang ini bekerja dengan baik untuk saya:
find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k
Yang diterjemahkan menjadi: menemukan semua file yang tidak tersembunyi secara rekursif di direktori saat ini, kemudian menggunakan grep, daftar semua file non-kosong non-biner (-I), kemudian pipa menjadi xargs (dibatasi oleh baris baru) satu file sekaligus untuk dos2unix dan simpan stempel waktu asli.
Lihat juga:
Anda dapat menggunakan find untuk menemukan semua file dalam struktur direktori yang ingin Anda jalankan melalui perintah dos2unix Anda
find /path/to/the/files -type f -exec dos2unix {} \;
Lihatlah halaman manual untuk menemukan, ada banyak opsi yang dapat Anda gunakan untuk menentukan apa yang akan dievaluasi
Gunakan wildcard. Seperti ini: (Jika Anda berada di folder)
dos2unix *
atau jika Anda berada di luar folder, lakukan:
dos2unix /path/to/folder/*
Menggunakan bash:
shopt -s globstar
dos2unix **
The globstarpilihan shell di bashmemungkinkan penggunaan **gumpal. Ini berfungsi seperti *tetapi cocok di /dalam nama path (karenanya mencocokkan nama dalam subdirektori juga). Ini akan berfungsi dalam direktori yang berisi jumlah file moderat dalam subdirektori (tidak ribuan).
Di zshdan yashkerang (dengan set -o extended-globdi yash), Anda akan lakukan
dos2unix **/*
dos2unixlewati binari secara default.