Этот вопрос нравится этой ветке. Как переименовать несколько файлов, заменив слово в имени файла?
Мой пример сложнее, чем тема выше. Две переменные - $ name и $ newname - получаются из другого места сценария оболочки. $ name и $ newname могут иметь слова Unicode или специальные символы, такие как [] <> ♫ ... и т. д., поэтому может ли кто-нибудь помочь мне предоставить метод для добавления части скрипта в оболочку scrit для решения вопроса о замене имени файла.
Кстати, я пытаюсь ввести два типа команд, чтобы изменить часть имени файла, но это не сработает.
rename.ul '$name' '$newname' /home/fy6877/test/final/*
ls /home/fy6877/test/final/|xargs -I$ rename.ul '$name' '$newname' $
Использовать rename
или mmv
. Ни один из них не должен заботиться о том, есть ли в ваших именах символы Юникода в кодировке UTF-8 или являются ли аргументы, указанные в командной строке, переменными или простыми литералами. Обязательно передайте аргументы как "$name"
не '$name'
чтобы гарантировать, что значение переменной будет передано команде переименования.