У меня есть набор файлов, все из них nnn.MP4.mov
, как я мог переименовать их так, чтобы это было просто nnn.mov
?
Как я могу переименовывать файлы с помощью терминала?
Ответ 1
Сначала выполните сухой прогон (фактически не переименуйте файлы) со следующим:
for file in *.mov
do
echo mv "$file" "${file/MP4./}"
done
Если все выглядит нормально, удалите echo
из третьей строки, чтобы фактически переименовать файлы.
Ответ 2
Я просто успешно использовал Automator (первый раз, когда я беспокоился), и он работает очень хорошо. Я сохранил автоматизацию как Сервис. Потребовалось около 10 секунд, чтобы сделать что-то легко повторное использование:
- Открыть Automator.
- В качестве типа документа выберите "Сервис".
- Служба изменений получает выбранный "текст" в "файлы и папки".
- Рассмотрите возможность изменения "любого приложения" только на Finder.
- На боковой панели выберите "Файлы и папки" (в разделе "Библиотека" ) и из перечисленных действий в центральном столбце перетащите "Переименовать элементы Finder" в нужную сторону и опустите его в "Перетащите действия или файлы здесь, чтобы построить ваш рабочий процесс."
- Измените действие, которое вы только что добавили, из "Добавить дату или время" в "Сделать последовательный".
- Нажмите "Параметры" внизу действия и установите флажок "Показывать это действие при запуске рабочего процесса".
- Нажмите "CMD + S", чтобы сохранить службу как нечто вроде "Заменить текст".
- Готово!
Теперь вы можете щелкнуть правой кнопкой мыши любой выбор в Finder, перейдите в меню "Сервис" и выберите "Заменить текст", заполните то, как вы хотите, чтобы текст был изменен или заменен - и нажмите "Продолжить", чтобы применить настроенные изменения.
Ответ 3
Чтобы проверить печать операции:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";echo mv \"$file\" \"$j\"; done
Чтобы он работал:
for file in *.MP4.mov; do j=`echo $file | cut -d . -f 1`;j=$j".mov";mv "$file" "$j"; done
Ответ 4
for n in *.MP4.mov
do
mv $n $(echo $n | sed -e 's/.MP4//')
done
Это будет работать даже на действительно старых оболочках, у которых нет замены параметров, и это, по крайней мере, немного читаемо для моих глаз.
Ответ 5
В Mac OSX вы можете установить команду rename
через Homebrew: brew install rename
Затем вы можете переименовать, используя find/replace из этой папки в командной строке:
rename 's/\.MP4\././' *
Вы также можете увидеть больше параметров, используя man rename
.
Ответ 6
for i in `ls *png`;do echo mv $i "${i%%.*}"@xx."${i##*.}";done
Ответ 7
vimv позволяет переименовывать несколько файлов с помощью возможностей редактирования текста Vim.
Ввод vimv открывает окно Vim, в котором перечислены все файлы, и вы можете выполнять сопоставление образцов, визуальный выбор и т.д., чтобы редактировать имена. После выхода из Vim файлы будут переименованы.
[Отказ от ответственности: я автор этого инструмента]
Ответ 8
ls -1 *.MP4.mov | while read f; do mv -i "$f" "$(basename \"$f\" .MP4.mov)"; done
Изменить: полностью перезаписано.
Ответ 9
for i in *;
do j=`echo $i | cut -d . -f 1`;
j=$j".mov";
mv $i $j;
done
это вырезает все до первой точки и добавляет .mov
но если некоторые файлы являются, например, hi.2.mov и hi.1.mov один будет перезаписан, поэтому используйте его осторожно ^^