У меня есть несколько файлов, названных как that : screenshot 13:25.png
Windows из-за ":" изо всех сил пытается открыть эти файлы.
Как я могу заменить его?
command-line
user236152
источник
источник
Ответы:
В терминале,
cd
в правильный каталог и затем запустите это.Это будет предварительный просмотр переименования. Следует заменить
:
на-
.Если это выглядит правильно, удалите
n
с конца, а затем он будет делать реальное переименование.Примечание : версии Ubuntu выше 17.04 не поставляются с
rename
, но они все еще доступны в репозиториях по умолчанию, поэтому используйтеsudo apt install rename
для их полученияисточник
n
) легко.rename 's/\:/-/g; s/%28/ /g; s/%29//g' ...
Вот чистое решение Bash:
${var//pattern/replacement}
Формат заменит все вхожденияpattern
сreplacement
в переменной$var
. Для получения дополнительной информации о возможностях bash по отображению строк см. Здесь .Если вы хотите сделать это для нескольких символов, вы можете просто поместить их в класс символов. Так, например, чтобы заменить все
;
,:
,=
,+
,%
,,
с подчеркиванием, вы можете сделать:По сути, идея в том, что это
[ ]
значитany of the characters listed
. Таким образом, помещая все символы, которые вы хотите заменить, в класс символов, все они обрабатываются одновременно.Для определенных символов, которые вы просили, все немного сложнее, потому что некоторые из них нужно экранировать (я игнорирую,
/
поскольку * nix не допускает его в именах файлов больше, чем Windows, так что это не будет выпуск):Обратите внимание, что я избежал
\
,'
и"
, добавив\
перед каждым.источник
Если вы предпочитаете графический интерфейс, установите pyrenamer:
Затем запустите это:
Он имеет десятки вариантов шаблонов и форматов переименования.
источник
Я предпочитаю GUI , но в качестве расширения Nautilus, т.е. Nautilus Действия Extra :
(См. Www.webupd8.org/2011/12/nautilus-actions-extra-pack-of-useful.html )
Затем, когда вы выбираете файлы для переименования и нажимаете «Переименовать» в контекстном меню, вам предлагается множество вариантов переименования файлов.
источник
В
renameutils
пакете есть удобная программа,qmv
которая обеспечивает интерактивное пакетное переименование. Вы запускаете его в каталоге или списке файлов, и он генерирует временный текстовый файл, содержащий их имена, и запускает ваш любимый редактор. Когда вы выходите из редактора, любые измененные вами имена файлов соответственно переименовываются.qmv
превращает проблему пакетного переименования в проблему редактирования текста.В этом случае вы можете использовать
qmv -f do *:*
для редактирования имен всех файлов, содержащих двоеточие, а затем:%s/:/_/g
команду в Vim (или соответствующий поиск и замену в любом редакторе, который вы используете).В
-f do
наборах опций формата текстового файла , чтобы файл-имя получателя только, что делает поиск и заменить проще. Формат по умолчанию имеет две копии имени файла в каждой строке, и вы редактируете только вторую. Это позволяет делать правильные вещи, если вы удалили или изменили порядок строк в файле, но это не всегда просто. Есть и другие форматы.С помощью
qmv
вы можете вместо этого выбрать конвейеризацию сгенерированного файла с помощью команды по вашему выбору, напримерsed
, если вы не хотите интерактивные возможности.источник
А вот скрипт Nautilus, который заменяет (все?) Несовместимые с Windows символы дефисом во всех выбранных именах файлов (на основе ответа terdon ;-)
источник
Thunar (файловый менеджер XFCE) имеет хорошую встроенную функцию для массового переименования файлов. У него есть опции для удаления / замены символов, поиска и замены, нумерации файлов и многое другое.
Установить Thunar:
Откройте Thunar, перейдите к своим файлам, выберите их и выберите «переименовать» (через контекстное меню или F2)
источник
источник