Existe-t-il un moyen d'appliquer la dos2unix
commande afin qu'elle s'exécute sur tous les fichiers d'un dossier et de ses sous-dossiers?
man dos2unix
n'affiche aucune -r
option similaire qui rendrait cela simple?
command-line
files
Alex Kinman
la source
la source
dos2unix
ignore les binaires par défaut.Ignorer les binaires et les fichiers cachés était important pour moi:
Celui-ci a bien fonctionné pour moi:
Cela se traduit par: rechercher tous les fichiers non masqués de manière récursive dans le répertoire courant, puis en utilisant grep, lister tous les fichiers non vides (-I) non binaires, puis les rediriger en xargs (délimités par des sauts de ligne) un fichier à la fois pour dos2unix et conservez l'horodatage d'origine.
Voir également:
https://github.com/mdolidon/endlines
la source
Vous pouvez utiliser find pour rechercher tous les fichiers dans une structure de répertoires que vous souhaitez exécuter via votre commande dos2unix
Jetez un œil aux pages de manuel pour trouver, il y a beaucoup d'options que vous pouvez utiliser pour spécifier ce qui sera évalué
la source
Utilisez un caractère générique. Comme ceci: (Si vous êtes dans le dossier)
ou si vous êtes en dehors du dossier, faites:
la source
En utilisant
bash
:L'
globstar
option shell dansbash
permet d'utiliser le**
glob. Cela fonctionne exactement comme*
mais correspond à travers/
dans les chemins d'accès (d'où la correspondance des noms dans les sous-répertoires aussi). Cela fonctionnerait dans un répertoire contenant un nombre modéré de fichiers dans ses sous-répertoires (pas plusieurs milliers).Dans les coquilles
zsh
etyash
(avecset -o extended-glob
inyash
), vous feriezla source