답변:
find . -type f -print0 | xargs -0 dos2unix
재귀 적으로 현재 디렉토리 내의 모든 파일을 찾고이 파일을 호출합니다. dos2unix 명령
\;; echo Hello
find
호출은이 검사를 수행하지 않지만 (추가하기에는 간단하지만) 현대 dos2unix
는 이진 파일을 올바르게 건너 뜁니다.
큰 디렉토리 인 경우 여러 프로세서로 실행하는 것이 좋습니다.
find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix
한 번에 1 개의 파일을 전달하고 4 개의 프로세서를 사용합니다.
n
우리가 그것에 관해 이야기하고있는 파일의 수에 따라 2
dos2unix가 만족스럽지 않으면 서 간단한 유틸리티를 공개했습니다. 속도와 예측 가능성의 몇 가지 장점 외에도 구문은 약간 더 간단합니다.
endlines unix *
그리고 하위 디렉토리로 이동하려면 (숨겨진 디렉토리 및 텍스트가 아닌 파일을 생략하십시오) :
endlines unix -r .
endlines
https://github.com/mdolidon/endlines에서 사용할 수 있습니다
dos2unix
됩니까? 정말 궁금합니다.
dos2unix
다양한 기능을 가진 많은 톤이 있습니다 (일부 읽기 UTF32는 있지만 일부는 그렇지 않습니다. 엔드 라인은 그렇지 않습니다). endlines
잘 알려진 기능은 하나뿐입니다 . 2 / 입력에 대한 자유, 모두 dos2unix
가 아닙니다 . 3 / 효율적인 파일 트리 탐색, 수만 개의 파일에서 빠르고 실용적으로 설계되었습니다. 4 /는 OSX에서 즉시 사용됩니다. 이제 Brew 패키지가 존재하므로 덜 중요합니다.
이 같은 숨김 파일 및 폴더 건너 아마 가장 좋은 .git.
사용하는 대신 그래서를 find
귀하의 경우, bash
버전이 최근 충분히이 발생하거나 사용하는 경우 zsh
, 단지 수행
dos2unix **
Bash의 경우 다음이 필요합니다.
shopt -s globstar
.... 그러나 이것은 당신이 솔직히 말해서 유용하게 사용할 수있는 충분한 기능입니다 .bashrc
.
당신이 경우 하지 않는 숨김 파일 및 폴더를 제외하려면,하지만 여전히 건드리고 싶지 않아 find
(내가 당신을 비난하지 않을), 당신은 일치하는 두 번째 재귀 글로브 인수 제공 할 수있는 유일한 숨겨진 항목 :
dos2unix ** **/.*
두 경우 모두 glob가 디렉토리를 포함하도록 확장되므로 다음과 같은 경고가 나타날 수 있습니다 (잠재적으로 여러 번). Skipping <dir>, not a regular file.
dos2unix
인수가 확장되는 방식에 영향을주는 일종의 별칭이 있다는 것입니다 . type dos2unix
시스템 의 출력은 무엇입니까 ?
**
대신은 find
"같은 숨김 파일 및 폴더 표시를 생략하는 것입니다 .git
." dos2unix
숨겨진 파일 **
은 표시되지 않으므로 확장되지 않습니다. 당신이 경우 원하는 자동으로 실행하기 위해 dos2unix
숨김 파일 및 폴더에, 당신은 사용할 수 있습니다 find
또는 dos2unix ** **/.*
가 **/.*
확장됩니다 만 숨겨진 파일 및 폴더를 포함하여 .
(루트 디렉토리), ..
현재 폴더에 (부모 디렉토리) 및 기타 숨겨진 항목을.
dos2unix
간단하게는 인쇄 Skipping <dir>, not a regular file.
그래서 실행, 디렉토리에 때 실행 ..
과 .
결합, 또한. 안전) ls
글로브 함께 하지 글로브 확장하는 방법을 확인하는 좋은 방법; 사용하는 echo
대신 : echo **
인수가 인쇄됩니다 dos2unix
에서 수신을 dos2unix **
.
**
암시적인 것에 대해 완전히 잘못된 생각을 가지고 있었고, echo
그것을 사용 하면 분명해진다.
for FILE in /var/www/html/files/*
do
/usr/bin/dos2unix FILE
done
하위 디렉토리가 없으면 다음을 수행 할 수도 있습니다.
ls | xargs -I {} dos2unix "{}"
dos2unix *
더 단순하고 실제로 이보다 더 강력합니다. (의 출력 ls
도구는 형식화 도구이므로 *
프로그래밍 방식으로보다 안정적 이기 때문에 일반적으로의 출력을 파이프하는 것은 권장되지 않습니다 .)
find . -type f -print0 | xargs -0 dos2unix
내가 생각하는 문제를 해결할 것입니다.