Переименуйте расширение многих файлов

1

Я хотел бы переименовать расширение .tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files только для .tar Я попробовал команду

rename 's/\.tar?h=ocdist105&p=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files$/.tar/' *.tar?h=ocdist105&p=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files

, но, похоже, он не работает. У меня 550 файлов с этим расширением. Может кто-нибудь мне помочь? Благодаря

    
задан user253334 28.02.2014 в 16:19
источник

3 ответа

0

cd в вашу папку и запустите mmv '*.tar*' '#1.tar'

Если у вас нет установленного mmv, запустите sudo apt-get install mmv

    
ответ дан kubahaha 28.02.2014 в 17:45
источник
2

Возможно, вы сможете выполнить это с помощью find, exec и rename. Я уверен, что это будет работать на Ubuntu, не требуя ничего особенного.

#!/bin/bash

find /path/to/files -name "*.tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files" -exec rename .tar?h=ocdist105&=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files .tar {} \;

Это не проверено, но должно работать. Вот как выглядит команда при попытке переименовать расширение .css на .txt , например; для ясности.

#!/bin/bash

find /path/to/files -name "*.css" -exec rename .css .txt {} \;

Использовать

Поместите вышеуказанный контент в файл. Дайте исполняемым файлам разрешения и запустите их.

ТЕСТИРОВАНИЕ

Вы можете проверить приведенную выше команду, чтобы увидеть, какой результат будет без фактических изменений, добавив -n после rename .

#!/bin/bash

find /path/to/files -name "*.css" -exec rename -n .css .txt {} \;
    
ответ дан Sajan Parikh 28.02.2014 в 16:27
0

Оба rename и ваша оболочка рассматривают некоторый символ как специальный. Вы должны надлежащим образом избежать их.

Эта команда должна выполнить работу:

rename 's/\.tar\?h\=ocdist105\&\=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files$/.tar/' *.tar\?h\=ocdist105\&\=%2Fdata1%2F4070d0f0f1d62757%2Frequested_files

Если вы хотите знать, как я сгенерировал эту команду, просто знайте, что табуляция является полезным другом при решении подобных проблем.

    
ответ дан Andrea Corbellini 28.02.2014 в 17:44