Как добавить расширение .xml ко всем файлам в папке в Unix / Linux - PullRequest
9 голосов
/ 31 августа 2011

Я хочу переименовать все файлы в папке и добавить расширение .xml.Я использую Unix.Как я могу это сделать?

Ответы [ 4 ]

21 голосов
/ 31 августа 2011

На оболочке вы можете сделать это:

for file in *; do
    if [ -f ${file} ]; then
        mv ${file} ${file}.xml
    fi
done

Редактировать

Чтобы сделать это рекурсивно для всех подкаталогов, вы должны использовать find:

for file in $(find -type f); do
    mv ${file} ${file}.xml
done

С другой стороны, если вы собираетесь делать что-то более сложное, чем это, вам, вероятно, не следует использовать shell сценарии.

Еще лучше

Используйте комментарий, предоставленный Джонатаном Леффлером ниже:

find . -type f -exec mv {} {}.xml ';'
3 голосов
/ 31 августа 2011
find . -type f \! -name '*.xml' -print0 | xargs -0 rename 's/$/.xml/'
3 голосов
/ 31 августа 2011

Не знаю, является ли это стандартным, но мой пакет Perl (Debian / Ubuntu) включает /usr/bin/prename (и символическую ссылку просто rename), который не имеет другого назначения:

rename 's/$/.xml/' *
2 голосов
/ 31 августа 2011

В Python :

Используйте os.listdir, чтобы найти имена всех файлов в каталоге. Если вам нужно рекурсивно найти все файлы в подкаталогах, используйте вместо этого os.walk. Его API сложнее, чем os.listdir, но он предоставляет мощные способы рекурсивного обхода каталогов.

Затем используйте os.rename для переименования файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...