Как переименовать файлы в подкаталогах?

Есть ли способ пакетного переименования 9X_windows-applications файлов в подкаталогах?

Например:

Переименуйте 9X_windows-application *.html в *.htm в папке, в которой есть каталоги и подкаталоги.

47
0
8
Общее количество ответов: 8

Ответ #1

Ответ на вопрос: Как переименовать файлы в подкаталогах?

Командная строка Windows: (в пакетном файле 9X_outfile замените% x на %% x)

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

Это также работает для 9X_outfile переименования середины файлов

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

95
1

  • Примечательно, что это также работает для переименования только средней ...

Ответ #2

Ответ на вопрос: Как переименовать файлы в подкаталогах?

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

9X_windows-applications

6
0

Ответ #3

Ответ на вопрос: Как переименовать файлы в подкаталогах?

В Python

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)

9X_batch-rename

6
0

Ответ #4

Ответ на вопрос: Как переименовать файлы в подкаталогах?

Если у вас есть файлы forfiles (я думаю, они 9X_windows входят в состав Windows XP, 2003 и новее), вы 9X_infile можете запустить:

forfiles /S /M *.HTM /C "cmd /c ren @file *.HTML"

6
0

Ответ #5

Ответ на вопрос: Как переименовать файлы в подкаталогах?

В Bash вы можете делать следующее:

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

9X_output-file

5
0

Ответ #6

Ответ на вопрос: Как переименовать файлы в подкаталогах?

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!

9X_windows-application

3
0

Ответ #7

Ответ на вопрос: Как переименовать файлы в подкаталогах?

Я уверен, что есть более элегантный способ, но 9X_batch-rename вот первое, что пришло мне в голову:

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

2
0

Ответ #8

Ответ на вопрос: Как переименовать файлы в подкаталогах?

В Linux вы можете использовать команду «rename» для 9X_input-file пакетного переименования файлов.

1
0