파일 / 폴더를 재귀 적으로 이름을 바꾸어 Windows 친화적 인 이름으로 만드는 방법은 무엇입니까?


11

우분투 상자에는 파일 이름에 Windows가 허용하지 않는 다양한 문자 (주로 ":"및 "*"이지만 다른 문자)가 많은 파일이 있습니다.

이름을 바꾸고 Windows 컴퓨터로 옮기는 가장 간단한 방법은 무엇입니까? 이러한 문자를 "[colon]"및 "[asterisk]"와 같은 문자로 바꾸어도됩니다.


1
Linux에서도 (특히 *) 이러한 이름을 피해야 합니다.
cYrus

4
@cYrus 파일 처리 방법에 따라 다릅니다. 스크립트와 쉘에만 문제가 있다고 생각합니다. 나는 OS X에 있고 유일하게 금지 된 문자는 :충분하지 않습니다. 내용 뒤에 문서 이름을 지정하는 것이 유용하며 기사 이름이 질문으로 끝나는 경우 파일 이름도 마찬가지입니다.
Daniel Beck

@cYrus와 저는 소프트웨어를 사용하지만 일부 소프트웨어는 그렇지 않은 사람들이 작성했습니다. 예를 들어, qmail은 생성하는 거의 모든 파일 이름에서 :를 사용합니다.
RomanSt

@Daniel Beck : 물론입니다. 그러나 불행히도 그런 이름을 지원하는 파일 시스템을 가지고 있다면 모든 것을 망쳐 놓는 프로그램을 사용할 수있는 것만으로는 충분하지 않습니다. 공백도 사용하지 않습니다.
cYrus

2
@ 스티븐 좋은 질문! 누군가 Windows에서 파일을 받고 해당 플랫폼에서 수정해야 할 수도 있기 때문에 Windows가 약간 더 유용하다고 생각합니다.
펠티어

답변:


4

Glindra 이름 바꾸기해독을 살펴보십시오 .

Glindra 파일 유틸리티는 Windows 또는 Linux에 설치할 수 있습니다. Windows에서 파일 이름 정리의 예 :

rena *.* -portable

rena *.* -safe
  • -safe
    선행 대시 (하이픈)를 밑줄로 매핑 합니다.
    공백을 접습니다.
    * ?: [] "<> | () {}과 같은 문제가있는 문자를 밑줄로 매핑합니다.
  • -portable -safe
    와 동일한 정리 작업을 수행하고 추가로 다음을 수행합니다
    . 라틴어 1 알파벳의 상단에서 8 비트 문자를 적절한 7 비트 대체 문자로 매핑합니다.
    작은 따옴표 문자 '`´를 밑줄로 맵핑합니다.

출처 : Unix / Linux / POSIX 파일 이름 수정 : 제어 문자 (예 : 줄 바꿈), 선행 대시 및 기타 문제


이 페이지는 404를 보여줍니다 . Google 캐시 된 사본 .
Daniel Beck

데이비드 휠러의 멋진 전율입니다! 특히 JungleDisk가 "~ \ irina"라는 디렉토리에 CD를 넣으려고 시도한 후 키보드를 shed습니다. 탭 완성이 효과가 있었는지 추측하고 싶습니까?
RomanSt

1
Detox는 Windows 파일을 다른 방식이 아닌 유닉스 친화적으로 만들기위한 것입니다.
endolith

3
@DennisWilliamson-glindra (Windows의 경우)가 잘못된 파일 이름으로 문자 이름을 바꿀 수없는 것 같습니다. G:\spc>rena.exe -safe -portable *.txt출력[FATAL-ERROR] Filename syntax error: aa:a.txt
Steven

1
Linux로 갈 때의 구문 변경, 즉 rena '*.*' -portable을 재귀 적으로 원한다면 rena '***/*.*' -portableLinux 와 같은 것을 사용하십시오 . 그리고 나는 이름이 Windows가 아닌 Linux에서 이루어져야한다고 생각합니다.
holroy

4

Recuva를 사용해보십시오 .

Windows에서 친숙하지 않은 파일 이름을 처리하는 유일한 Windows 유틸리티입니다.

삭제되지 않은 파일 검색 (손상되었거나 다시 포맷 된 디스크에서 복구)을 활성화 하고 폴더를 검색하십시오. 복원시 폴더 구조 복원을 사용하십시오 . Recuva는 친숙하지 않은 파일 이름을 "위생 화"하면서 전체 디렉토리를 다른 위치로 효과적으로 "복사"합니다.


1

리눅스를 사용하지 않고 아무 것도 테스트하지 않으면 아래의 것과 같은 하나의 라이너를 사용할 수 있다고 생각합니다.

한 글자를 바꾸려면 :

find . -type f -exec rename 's/:/\[colon\]/g' {} +
find . -type f -exec rename 's/\*/\[asterisk\]/g' {} +

마지막으로 영숫자가 아닌 문자를 모두 제거하십시오.

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

이것은 다른 모든 불법적 인 창문 문자, 즉<>:"/\|?*
holroy

0

파일이 이미 NTFS 볼륨에있는 경우 Windows에서 chkdisk를 실행하면 문제가 "해결"됩니다. 불행히도 문제가되는 파일을 삭제하여 그렇게하는 것처럼 보입니다.


0

첫 두 답변과 pyRenamer (GUI)의 조합으로 관리했습니다. Linux에서는 pyRenamer를 사용하여 폴더 이름 (디렉토리)에서 공백을 접지 않고 공백으로 대체하여 다른 프로그램 (Glindra 이름 바꾸기)이 재귀 적으로 작동하도록했습니다 (하나는 밑줄을 넣을 수 있음). 파일에서 공간을 절약하기 위해 창에서 허용되는 문자 나 단어를 가져와 파일 이름에서 비슷하게 축소 된 공백을 사용했습니다. 그런 다음 rena를 실행하여 비 Windows 문자를 꺼내고 플래시 드라이브에 저장 한 다음 Recuva를 사용하여 Windows의 폴더로 '복원'했습니다. Recuva는 파일 경로가 너무 길면 Windows 이외의 문자도 제거함을 나타냅니다. 파일 이름의 경로를 확인하여 파일 이름이 Windows 최대 제한 255 미만인지 확인하는 도구를 아직 찾지 못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.