Como aplicar dos2unix recursivamente a todo o conteúdo de uma pasta?

5

Existe uma maneira de aplicar o comando dos2unix para que ele seja executado em todos os arquivos em uma pasta e em suas subpastas? man dos2unix não mostra -r ou opções semelhantes que tornariam isso direto?

    
por Alex Kinman 28.04.2016 / 20:42

4 respostas

8

find /path -type f -print0 | xargs -0 dos2unix --

    
por 28.04.2016 / 20:53
2

Você pode usar find para encontrar todos os arquivos em uma estrutura de diretórios que deseja executar através do comando dos2unix

find /path/to/the/files -type f -exec dos2unix {} \;

Dê uma olhada nas páginas de manual para encontrar, há muitas opções que você pode usar para especificar o que é avaliado

    
por 28.04.2016 / 20:58
2

Ignorar binários e arquivos ocultos foi importante para mim:

Este funcionou bem para mim:

find . -type f -not -path '*/\.*' -exec grep -Il '.' {} \; | xargs -d '\n' -L 1 dos2unix -k

O que significa: localizar todos os arquivos não ocultos recursivamente no diretório atual e, em seguida, usar grep, listar todos os arquivos não-binários (-I) não-vazios e enviá-los para xargs (delimitados por novas linhas) um tempo para dos2unix e manter o timestamp original.

Veja também:

link

Espero que ajude.

    
por 17.05.2017 / 19:30
1

Use um curinga. Assim: (Se você está na pasta)

dos2unix *

ou se você estiver fora da pasta, faça:

dos2unix /path/to/folder/*
    
por 28.04.2016 / 20:51