Как переименовать файл с помощью подстроки с тем же именем

Я хочу переименовать свой файл с его подстрокой. Потому что, к сожалению, переименовали все файлы на моем сервере.

Теперь я хочу удалить суффикс (.gz) всех файлов, включая файлы в подкаталогах.

Ниже доступны файлы с дополнительным .gz .

 # pwd /usr/apache-tomcat-6.0.36/webapps/rdnqa/WEB-INF/classes # ls META-INF jbpm.hibernate.cfg.xml.gz jbpm.jpdl.cfg.xml.gz jpdl-4.0.xsd.gz config jbpm.hibernate.cfg.xml.mirror.gz jbpm.mail.templates.xml.gz jpdl-4.2.xsd.gz ecnet jbpm.hibernate.cfg.xml.staging.gz jbpm.repository.hbm.xml.gz jpdl-4.3.xsd.gz hibernate.queries.hbm.xml.gz jbpm.history.hbm.xml.gz jbpm.task.hbm.xml.gz jpdl-4.4.xsd.gz jbpm.businesscalendar.cfg.xml.gz jbpm.identity.cfg.xml.gz jbpm.task.lifecycle.xml.gz labels jbpm.cfg.xml.gz jbpm.identity.hbm.xml.gz jbpm.tx.hibernate.cfg.xml.gz log4j.properties.gz jbpm.console.cfg.xml.gz jbpm.jboss.idm.cfg.xml.gz jbpm.tx.jta.cfg.xml.gz nohup.out.gz jbpm.default.cfg.xml.gz jbpm.jbossremote.cfg.xml.gz jbpm.tx.spring.cfg.xml.gz jbpm.default.scriptmanager.xml.gz jbpm.jobexecutor.cfg.xml.gz jbpm.variable.types.xml.gz jbpm.execution.hbm.xml.gz jbpm.jpdl.bindings.xml.gz jbpm.wire.bindings.xml.gz # cd ecnet # ls core jms rd util # cd core # ls util # cd util # pwd /usr/apache-tomcat-6.0.36/webapps/rdnqa/WEB-INF/classes/ecnet/core/util # ls GridService.class.gz MDPDFXMLParser.class.gz PDFColumn.class.gz PDFXMLParser.class.gz GridService.java.gz MDPDFXMLParser.java.gz PDFColumn.java.gz PDFXMLParser.java.gz MDExcelXmlParser.class.gz MasterDetailsPrintWriter.class.gz PDFRow.class.gz RGBColor.class.gz MDExcelXmlParser.java.gz MasterDetailsPrintWriter.java.gz PDFRow.java.gz RGBColor.java.gz MDExcleWriter.class.gz PDFCell.class.gz PDFWriter.class.gz xml2excel MDExcleWriter.java.gz PDFCell.java.gz PDFWriter.java.gz # 

3 Solutions collect form web for “Как переименовать файл с помощью подстроки с тем же именем”

Вы можете использовать rename (он предназначен для этого). Просто выполните эту команду в папке, где *.gz файл *.gz :

 rename -n 's/\.gz$//' *.gz 

Это удалило расширение .gz из всех файлов с расширением .gz. Результат должен выглядеть следующим образом:

 hibernate.queries.hbm.xml.gz renamed as hibernate.queries.hbm.xml jbpm.businesscalendar.cfg.xml.gz renamed as jbpm.businesscalendar.cfg.xml jbpm.cfg.xml.gz renamed as jbpm.cfg.xml ... 

Примечание. Если выход по желанию, выполните команду без ключа -n . Этот переключатель вызывает rename чтобы не действовать, просто покажите, какие файлы были бы переименованы .

Следующий скрипт может помочь:

 for i in $(ls) do mv $i ${i%.gz} 2> /dev/null done 

В основном это петли файлов в каталоге и переименовывает файлы, удаляя «gz» с конца.

Самый простой и безопасный метод – это использовать команду find и настроить команду. Например:

 find . -type f -name '*.gz' -exec bash -c 'n=$1; mv -- "$n" "${n%.*}"' _ {} \; 
  • Осведомление командной строки Linux
  • Как переместить большое количество файлов в оригинальные каталоги?
  • поместить команду history в командную строку без ее выполнения
  • sed для замены пробелов в кавычках
  • команда для очистки старых файлов журнала
  • Как открыть man-страницу в новом окне терминала?
  • Использование 'find' в командной строке
  • Какова цель команды 'install'?
  • iotop. Не удалять из списка исключенные процессы / потоки из списка
  • Логистика копирования большого количества файлов scp-сервера на сервер. Как определить прогресс?
  • Как выполнить одну команду для всех файлов в папке
  • Linux и Unix - лучшая ОС в мире.