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

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

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

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

  • Почему файловые системы * nix поддерживают имена файлов с символами новой строки?
  • как сохранить вывод команды в массив с каждым значением в двойной кавычки
  • Как использовать fslint (в частности findnl) в командной строке, чтобы реально имитировать поведение fslint-gui?
  • Команда для поиска длин файлов / путей, которые слишком велики для записи на DVD?
  • передача имени файла с пробелами в сценарий оболочки
  • Почему происходит перебор находок на выходе плохой практики?
  • как заменить "/" в имени файла на "_"
  • Содержит ли мягкая привязка к каталогу жесткие ссылки на его подфайлы?
  • 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

    Скопировать несколько файлов в один каталог с параллельным

    mv удалил мой каталог. Зачем?

    Отключение gpgcheck с плагином tmprepo

    Не удается найти исходный пакет с apt-get source на Debian Squeeze

    определить, какая служба запускает скрипт

    Возможно ли, чтобы DHCP назначил разные IP-адреса одному и тому же компьютеру?

    Захват журналов устройств между конкретным временем

    предотвращение двойного соединения через wlan0 и usb 0 в network-manager-gnome

    в i3wm, как я могу установить макет по умолчанию для всех рабочих пространств

    Использование графического процессора для каждого пользователя на машине Linux (CUDA)

    Как увидеть версию пакета без установки?

    parted создал раздел XFS, тогда как я попросил ext4. Зачем?

    Невозможно убедить Thunderbird открывать ссылки во всем, кроме Firefox, на ArchLinux

    Как получить эту подстроку в сценарии bash?

    gunzip несколько сжатых файлов в другой каталог, не удаляя файлы .gz

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