[linux] 전체 디렉토리에서 dos2unix를 어떻게 실행할 수 있습니까? [닫은]

를 사용하여 전체 디렉토리를 변환해야합니다 dos2unix. 이 작업을 수행하는 방법을 알 수 없습니다.



답변

find . -type f -print0 | xargs -0 dos2unix

재귀 적으로 현재 디렉토리 내의 모든 파일을 찾고이 파일을 호출합니다. dos2unix 명령


답변

큰 디렉토리 인 경우 여러 프로세서로 실행하는 것이 좋습니다.

find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix

한 번에 1 개의 파일을 전달하고 4 개의 프로세서를 사용합니다.


답변

dos2unix가 만족스럽지 않으면 서 간단한 유틸리티를 공개했습니다. 속도와 예측 가능성의 몇 가지 장점 외에도 구문은 약간 더 간단합니다.

endlines unix *

그리고 하위 디렉토리로 이동하려면 (숨겨진 디렉토리 및 텍스트가 아닌 파일을 생략하십시오) :

endlines unix -r .

endlineshttps://github.com/mdolidon/endlines에서 사용할 수 있습니다


답변

이 같은 숨김 파일 및 폴더 건너 아마 가장 좋은 .git.사용하는 대신 그래서를 find귀하의 경우, bash버전이 최근 충분히이 발생하거나 사용하는 경우 zsh, 단지 수행

dos2unix **

Bash의 경우 다음이 필요합니다.

shopt -s globstar

…. 그러나 이것은 당신이 솔직히 말해서 유용하게 사용할 수있는 충분한 기능입니다 .bashrc.

당신이 경우 하지 않는 숨김 파일 및 폴더를 제외하려면,하지만 여전히 건드리고 싶지 않아 find(내가 당신을 비난하지 않을), 당신은 일치하는 두 번째 재귀 글로브 인수 제공 할 수있는 유일한 숨겨진 항목 :

dos2unix ** **/.*

두 경우 모두 glob가 디렉토리를 포함하도록 확장되므로 다음과 같은 경고가 나타날 수 있습니다 (잠재적으로 여러 번). Skipping <dir>, not a regular file.


답변

일반적인 사용 사례 는 Git 저장소에 커밋 된 모든 파일의 줄 끝표준화 하는 것으로 보입니다 .

git ls-files | xargs dos2unix

특정 파일 (예를 들어 있다는 사실을 숙지 *.sln, *.bat) 등 있습니다 의 Windows 운영 체제에서 사용한다 계속CRLF 종료를 :

git ls-files '*.sln' '*.bat' | xargs unix2dos

필요한 경우 .gitattributes


답변

모든 Solaris 사용자의 경우 (오전 5.10을 사용중인 경우, 다른 유닉스 시스템뿐만 아니라 최신 버전에도 적용될 수 있음) :

dos2unix는 기본적으로 파일을 덮어 쓰지 않고 업데이트 된 버전을 stdout으로 인쇄하기 때문에 소스와 대상을 같은 이름으로 두 번 지정해야합니다.

find . -type f -exec dos2unix {} {} \;


답변

for FILE in /var/www/html/files/*
do
 /usr/bin/dos2unix FILE
done