문제

하위 디렉토리에 파일을 바꾸는 방법이 있습니까?

예를 들어:

이름 바꾸기 *.html 에게 *.htm 디렉토리 및 서브 디렉토리가있는 폴더에서.

도움이 되었습니까?

해결책

Windows 명령 프롬프트 : (배치 파일 내부 인 경우 %x를 %x로 변경합니다 x)

for /r %x in (*.html) do ren "%x" *.htm

이것은 파일의 중간을 바꾸는데도 효과가 있습니다.

for /r %x in (website*.html) do ren "%x" site*.htm

다른 팁

Windows의 경우 이것이 내가 찾은 최고의 도구입니다.

http://www.1-4a.com/rename/

그것은 무엇이든 할 수 있고 부엌 싱크대가 있습니다.

Linux의 경우 이전 답변과 같이 다양한 스크립팅 언어와 쉘이 있습니다.

find . -regex ".*html$" | while read line;
 do 
    A=`basename ${line} | sed 's/html$/htm/g'`;
    B=`dirname ${line}`;
    mv ${line} "${B}/${A}";
 done

파이썬에서

import os

target_dir = "."

for path, dirs, files in os.walk(target_dir):
    for file in files:
        filename, ext = os.path.splitext(file)
        new_file = filename + ".htm"

        if ext == '.html':
            old_filepath = os.path.join(path, file)
            new_filepath = os.path.join(path, new_file)
            os.rename(old_filepath, new_filepath)

Bash에서는 다음을 수행 할 수 있습니다.

for x in $(find . -name \*.html); do
  mv $x $(echo "$x" | sed 's/\.html$/.htm/')
done

더 우아한 방법이 있다고 확신하지만 여기에 내 머리에 가장 먼저 튀어 나온 것이 있습니다.

for f in $(find . -type f -name '*.html'); do 
    mv $f $(echo "$f" | sed 's/html$/htm/')
done

Forfiles (Windows XP 및 2003과 함께 제공되고 최신 제품이 포함되어 있음)가 있다면 다음을 수행 할 수 있습니다.

forfiles /s /m *.htm /c "cmd /c ren @file *.html"

Linux에서는 ''를 사용할 수 있습니다.이름 바꾸기'파일 이름을 배치로 바꾸는 명령.

In bash use command rename :)

 rename 's/\.htm$/.html/' *.htm

 # or

 find . -name '*.txt' -print0 | xargs -0 rename 's/.txt$/.xml/'

 #Obs1: Above I use regex \. --> literal '.'  and  $ --> end of line
 #Obs2: Use find -maxdepht 'value' for determine how recursive is
 #Obs3: Use -print0 to avoid 'names spaces asdfa' crash!

총 사령관 파일 관리자 앱인 Dir & Sub-Dirs 내의 모든 파일을 나열하고 선택한 다음 전체 사령관 작업을 실행할 수 있습니다. 그중 하나는 다음과 같습니다. 다중 생성 된 파일.

Linux에서 어색합니다. 첫 번째 디렉토리의 경우 이것은 당신의 답입니다 ... 아래 에이 정확한 awk를 작성하는 다른 awk를 쓰면서 Dir_path에서 awk를 재귀 적으로 호출하여 외삽하십시오.

ls dir_path/. | awk -F"." '{print "mv file_name/"$0" dir_path/"$1".new_extension"}' |csh

Windows의 경우 a를 만들었습니다 편리한 litte vbscript 솔루션 Regex 기반 이름 변경 및 드래그 앤 드롭 지원. 원하는 경우 시도해보십시오. VBS 파일에 넣고 폴더를 탐색기에 놓으십시오.

창문에서 이름 변경 그것에 대해 꽤 잘한다. 프리웨어이지만 오픈 소스는 아닙니다.

Windows에서는 OpenSource Simple C#을 찾을 수 있습니다. 대량 파일 렌즈 라머 신청서 https://filerenamer.codeplex.com 간단한 상태로 작동합니다 엑셀 파일. 이 응용 프로그램에 두 개의 열 소스와 대상이있는 Excel 파일을 제공하면 완료되었습니다.

유닉스에서는 사용할 수 있습니다 RNM:

rnm -rs '/\.html$/.htm/' -fo -dp -1 *

또는

rnm -ns '/n/.htm' -ss '\.html$' -fo -dp -1 *

설명:

  1. -ns : 이름 문자열 (새 이름). /n/ 확장자없이 파일 이름으로 확장되는 이름 문자열 규칙입니다.
  2. -ss : 검색 문자열 (regex). 일치하는 파일을 검색합니다.
  3. -rs : 양식의 문자열을 교체하십시오 /search_regex/replace_part/modifier
  4. -fo : 파일 전용 모드
  5. -dp : 디렉토리 깊이 (-1은 무제한을 의미).
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top