Czy istnieje sposób zastosowania dos2unixpolecenia, aby działało na wszystkich plikach w folderze i jego podfolderach?
man dos2unixnie pokazuje żadnych -rlub podobnych opcji, które mogłyby to ułatwić?
Czy istnieje sposób zastosowania dos2unixpolecenia, aby działało na wszystkich plikach w folderze i jego podfolderach?
man dos2unixnie pokazuje żadnych -rlub podobnych opcji, które mogłyby to ułatwić?
Odpowiedzi:
Pomijanie plików binarnych i ukrytych plików było dla mnie ważne:
Ten działał dla mnie dobrze:
find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k
Co przekłada się na: znajdowanie rekursywnie wszystkich nie ukrytych plików w bieżącym katalogu, a następnie za pomocą grep, wyświetlenie listy wszystkich niepustych (-I) niepustych plików, a następnie potokowanie go do xargs (rozdzielonych znakami nowej linii) po jednym pliku, aby dos2unix i zachowaj oryginalny znacznik czasu.
Zobacz też:
Za pomocą polecenia find można znaleźć wszystkie pliki w strukturze katalogów, które chcesz uruchomić za pomocą polecenia dos2unix
find /path/to/the/files -type f -exec dos2unix {} \;
Spójrz na strony podręcznika dla find, istnieje wiele opcji, których możesz użyć, aby określić, co zostanie ocenione
Użyj znaku wieloznacznego. W ten sposób: (jeśli jesteś w folderze)
dos2unix *
lub jeśli jesteś poza folderem:
dos2unix /path/to/folder/*
Używanie bash:
shopt -s globstar
dos2unix **
Opcja globstarpowłoki bashumożliwia użycie **globu. Działa to tak samo, *ale pasuje /do nazw ścieżek (stąd też dopasowuje nazwy w podkatalogach). To działałoby w katalogu zawierającym umiarkowaną liczbę plików w jego podkatalogach (niewiele tysięcy).
W zshi yashmuszli (z set -o extended-glob, w yash), zrobiłbyś
dos2unix **/*
dos2unixdomyślnie pomija pliki binarne.