¿Hay alguna forma de aplicar el dos2unix
comando para que se ejecute en todos los archivos de una carpeta y sus subcarpetas?
man dos2unix
¿No muestra ninguna -r
opción o similar que lo haga sencillo?
¿Hay alguna forma de aplicar el dos2unix
comando para que se ejecute en todos los archivos de una carpeta y sus subcarpetas?
man dos2unix
¿No muestra ninguna -r
opción o similar que lo haga sencillo?
Respuestas:
Saltar binarios y archivos ocultos fueron importantes para mí:
Este me funcionó bien:
find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k
Lo que se traduce en: buscar todos los archivos no ocultos recursivamente en el directorio actual, luego usar grep, enumerar todos los archivos no binarios (-I) no vacíos, luego canalizarlos en xargs (delimitados por nuevas líneas) un archivo a la vez para dos2unix y mantenga la marca de tiempo original.
Ver también:
Puede usar find para buscar todos los archivos en una estructura de directorio que desea ejecutar a través del comando dos2unix
find /path/to/the/files -type f -exec dos2unix {} \;
Eche un vistazo a las páginas de manual para encontrar, hay muchas opciones que puede usar para especificar lo que se evalúa
Usa un comodín. Así: (si estás en la carpeta)
dos2unix *
o si estás fuera de la carpeta haz:
dos2unix /path/to/folder/*
Utilizando bash
:
shopt -s globstar
dos2unix **
La globstar
opción de shell en bash
permite el uso del **
glob. Esto funciona igual *
pero coincide /
en los nombres de ruta (por lo tanto, coincide con los nombres en subdirectorios también). Esto funcionaría en un directorio que contiene un número moderado de archivos en sus subdirectorios (no muchos miles).
En el zsh
y yash
conchas (con set -o extended-glob
adentro yash
), harías
dos2unix **/*
dos2unix
omite los binarios por defecto.