Я получил кучу файлов с испорченным именем файла. Все имена файлов имеют одинаковое начало, которое выглядит как каталоги файлов Windows. Проблема в том, что существует более 700 файлов, и я действительно не хочу просматривать их вручную и переименовывать вручную. Это примеры имен файлов (Примечание: ни у одного из них нет файловых каталогов):
G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...
Важный вывод заключается в том, что у каждого файла есть G:some\really\long\file\path\then\the\
перед именем файла, которое я хотел бы.
Так что я бы хотел, чтобы приведенные выше файлы выглядели так:
name1.jpg
name2.png
filename.txt
file_name.mov
Я пробовал команду rename
и не увенчался успехом. Я все еще новичок в Linux и действительно не знаю, как с этим справиться или что действительно нужно гуглить. Любая помощь будет оценена.
Я просто удалил все до последней обратной косой черты с rename
$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)
, Удаляют -n
после тестирования для фактического переименования файлов.
-n
ничего не делают, просто печатают то, что будет изменено s/old/new
замена old
с new
.*
любое количество любых символов \\
, первая обратная косая черта должна выйти из второго. .*\\
ест все предыдущие обратные косые черты также. //
пусты, все подобранное в поисковой части удалено Можно сделать это в чистом bash
использование расширение параметра оболочки .
${file##*\\}
(cut-up-to-last-prefix) разделяет все от запуска имени файла до в последний раз \
замеченный.
for file in *; do
mv -v "$file" "${file##*\\}";
done
переименовать результаты:
‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’
Если Вы ищете GUI решения, существует много объемных приложений переименования. Я предложил бы Thunar, который является файловым менеджером по умолчанию для Xfce. Это идет с удобным объемным инструментом переименования. Можно установить Thunar путем выполнения следующей команды в Терминале:
sudo apt-get install thunar
Вы, вероятно, сможете установить из программного обеспечения Ubuntu также.
G:some\really\long\file\path\then\the\
(часть, Вы хотите избавиться от), уезжайте эти Замена: пустое поле. Необходимо видеть предварительный просмотр изменений в столбец New Name . , Кроме того Поиск & Замена эта утилита поддерживает следующие действия: