Windows에서 잘못된 파일 이름을 가진 Mac에서 모든 파일을 찾는 방법은 무엇입니까?


1

Mac의 모든 파일을 확인하고 제한된 / 금지 된 문자 (예 : \ / : *)를보고 할 수있는 스크립트 나 소프트웨어를 찾고 있습니다. "<> |, Windows에서 작동하지 않습니다.

어떤 아이디어?


파일 이름이나 파일 내용에있는 제한된 문자에 대해 이야기하고 있습니까?
파스칼

\ / : *? "<> | 파일 이름. 파일 내용에 금지 된 문자가 있습니까? !!! 실제로 확실하지 않습니다!
Feri

답변:


2

문자가 문제가있는 파일 이름을 찾으려면 find를 사용할 수 있습니다.

$ find / -regex ".*[<>/:*?|].*" -print

찾고자하는 모든 문자를 대괄호 안에 넣으십시오. 일부 문자는 특별한 의미를 갖기 때문에 이스케이프해야합니다 (예 : 0-9는 0,-및 9가 아닌 모든 숫자를 찾습니다). 기본적으로 큰 따옴표로 지정하는 것은 파일 이름이 인쇄되어야하는 정규식입니다.

다음과 같이 모든 파일 목록을 포함하는 파일을 만들 수 있습니다.

$ find / -regex ".*[<>/:*?|].*" -print > problematic-files.txt

-name대신에 사용 하는 경우 -regex기본 쉘 패턴을 지정할 수 있습니다 (여기서 *는 문자 수,?는 1, 문자 선택은 [...]). 유연성은 떨어지지 만 목적에 충분할 것입니다.

$ find / -name "*[<>/:*?|]*" -print > problematic-files.txt

(Mac OS에 내가 사용하고있는 GNU find와 동일한 find 기능이 있는지 확실하지 않습니다. 매뉴얼을 얻고 정규 표현식이나 쉘 패턴을 사용하는 방법을 알아 보려면 "man find"를 사용하십시오.


점을 유의 /의지 일치하는 경로가 같은 /some/path/goodname.txt... 그렇지 않으면,이 Mac에서 잘 작동합니다.
Arjan

흠, 그건 사실이야 따라서 정규식에서 /를 생략하십시오. 파일 이름에서 슬래시를 필터링 해야하는 경우 스크립트 루프를 통해 컴퓨터의 모든 파일 목록을 실행하고 각 파일에 sed를 사용하지 않는 솔루션을 볼 수 없습니다. 슬래시가있는 파일이 너무 많지 않기를 바랍니다. 내 시스템에서 실제로 이름에 슬래시가있는 파일을 작성하는 데 어려움이 있습니다.
Pascal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.