Удалить параметры GET из имен файлов в каталоге

Мне нужно удалить часть, начиная с ? из группы файлов с именами, такими как image.jpg?foo=bar&bar=foo . Кто-нибудь, пожалуйста, покажите мне, как это делается?

По некоторым причинам эти команды не работают:

 rename "\?." "" * rename 's/(.*)\.jpg\?.*/$1\.jpg/' * 

  • Использование команды rename для переименования первой части файла
  • Как найти имена файлов / каталогов, которые являются одинаковыми, но с разной капитализацией / случаем?
  • Сделать работу grep для специальных имен файлов
  • Список всех файлов с одинаковым именем и количеством файлов
  • Shell Scripting: удаление или перемещение файлов из одного каталога, соответствующего именам файлов из другого каталога
  • Разбирайте перетаскиваемый путь с удаленной машины
  • Запуск sh-файла работает только в том случае, если каталог cd'd для скриптов
  • Удалить папку с пустым (?) Именем файла
  • One Solution collect form web for “Удалить параметры GET из имен файлов в каталоге”

    Это просто:

    Мы работаем в цикле for для каждого файла, чье имя содержит ' ? ».

    Это для цикла вызывает команду mv (== rename) со всеми этими файлами, плюс эти имена файлов без их части после этого ? ».

    Точная команда следующая:

     for i in *\?*;do mv -vf "${i}" "${i%%\?*}";done 

    Кажется, что это немного загадочно, это "${i%%\?*}" . Это означает: «переменная с именем« i », удаленная из ее хвоста все после« ? ».

    Существует также немного загадочная вещь, то есть часть *\?* . Это означает, что каждый файл в текущем каталоге, чье имя содержит ? ». Это шаблон, как и в (win) do (w) s, единственное отличие состоит в том, что ' ? 'означает по умолчанию каждый символ. Обратная косая черта (' \ ') используется для удаления этого специального значения.

    Interesting Posts

    Часы не обновляются при обновлении

    Какую команду вы бы использовали, если вы хотите удалить пароль, назначенный группе

    Centos 6 и postfix: Внутренние сообщения электронной почты, отложенные / telnet, были отключены из SSH

    Ошибка Malloc после запуска chown -R on / usr /

    Сохраните файл с сохранением файла emacs без доступа к терминалу

    xmodmap проблемы и несоответствия с более чем 4 альтернативными символами на ключ

    ajaxterm с использованием пропорционального шрифта

    Нежелательное выделение текста в Vim latex-suite

    Как перенаправить stdout и stderr в файл и отобразить stderr на консоль?

    Как определить, какой сервис запускается во время загрузки, отвечает за определенное поведение?

    Как обернуть команды bash после добавления цвета

    Неадминистративные сетевые инструменты

    atftpd не запускается на openuse tumbleweed под systemd

    Убейте невосприимчивый процесс по имени, но сохраните реагирующие процессы

    Как выводить некоторые данные в разные ячейки файла Excel?

    Linux и Unix - лучшая ОС в мире.