копировать файлы на новое имя – кратчайший путь

В каталоге у меня около 150 файлов с определенным расширением, например:

abc.ext def.ext ghi.ext ... 

Теперь я хочу скопировать все эти файлы также в новое имя файла (без расширения):

 abc def ghi 

Каков самый короткий способ сделать это? Возможно ли это без написания цикла в файле bash?

Редактировать: Спасибо за ваши ответы (dirkt, John Newman).
Увидев ответы, я буду придерживаться более короткого, хотя у него есть петля.

  • Необходимо перенести последнюю строку файла во вторую строку того же файла
  • Список файлов, имя которых начинается с любого из символов между а-k
  • В соответствии с тем, что GNOME очищает мусор «через 30 дней»?
  • Как ограничить скорость копирования файлов?
  • Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле
  • Что-то вроде символически связанного файла, но с привязанными данными изменения?
  • Организация беспорядочной папки на основе типа файла
  • Поиск файлов в порядке времени
  • 2 Solutions collect form web for “копировать файлы на новое имя – кратчайший путь”

    Это возможно без написания сценария («файл bash»), но не без использования цикла:

     for f in *.ext ; do cp -- "$f" "$(basename "$f" .ext)" ; done 

    basename можно использовать для удаления суффикса.

    Это возможно без цикла. Это хорошо … Я оставлю это до вас.

     $ find . -type f -name "*.ext" -print0 | xargs -0 -I {} echo cp -T {} {}SUB | sed -e 's/\.extSUB//g' 

    добавьте трубу в ш, чтобы выйти из режима сухого хода. Backticks не являются хорошими, поскольку он разделяет новые строки, если вы не имеете дело с $ IFS. Есть и другие проблемы с обратными тактами, как упоминалось выше. Также нужен cp -T, поскольку последний аргумент обычно ожидает каталог.

    Мне не хватает «rep», чтобы прокомментировать сказанное выше, но вы можете использовать различные трюки с bash ${} чтобы избежать fork basename .

    Подстрока: ${f:0:-4} или самое длинное совпадение: ${f%%.ext}

    Interesting Posts

    Что такое? = В bash?

    Удалить до первого вхождения, отредактировать эту строку и распечатать оставшиеся строки без изменений

    Создание нового соединения на интерфейсе, не используемом до использования nmcli

    как повторно использовать существующее завершение с недавним завершением bash?

    Проблемы с установкой R на Red Hat 6, требует libjpeg.so.62

    Как удаленно проверять операционную систему сервера?

    Mode_switch + Shift не совпадает с Shift + Mode_Switch?

    Ubuntu 16.04.1: Почему некоторые программы запускаются как системами systemd, так и initV?

    Как передать параметры из xrdp в vnc viewer, например viewonly?

    Как добавить строку после n-го появления ключевого слова с помощью sed?

    Изменить обои для рабочего стола с терминала

    Сокращенное обозначение boolean

    Почему. Xauthority не может принадлежать учетной записи root, чтобы пройти вход в систему?

    Chromebook-подобный дистрибутив, основанный на Firefox OS?

    терминальный эмулятор, который автоматически закрывается после выполнения, но остается открытым, если во время выполнения была ошибка

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