gunzip и создавать каталоги, следующие за именем zip-файла

У меня есть следующий файл gzip: hdf5-1.8.18.tar.gz . Когда я разархивирую файл со следующей командой:

 gunzip < hdf5-1.8.18.tar.gz | tar xf - 

Он распаковывается в созданный следующий каталог: hdf5-1.8.18 . Этот каталог не очень удобен для использования причины «-», поэтому я изменил имя каталога с помощью следующей команды:

 mv hdf5-1.8.18 hdf5 

Но, используя эту команду, я потерял информацию о версии 1.8.18. Поэтому я могу сделать уродливое обходное решение вроде:

 mkdir hdf5 mv hdf5-1.8.18 hdf5/1.8.18 

Я нахожу это решение тихим уродством, поэтому я хотел бы знать, нет ли более прямого способа сделать это. Спасибо!

2 Solutions collect form web for “gunzip и создавать каталоги, следующие за именем zip-файла”

Возможно, вы захотите взглянуть на параметр -C tar .

 tar zxf hdf5-1.8.18.tar.gz -C hdf 

будет распаковывать, распаковывать и размещать каталог в hdf/ diretory.

Прежде всего, было бы проще, если бы вы немного переформулировали свой вопрос. Чувствует себя легко решаемым с помощью какого-то скрипта. Следующее должно работать в скрипте BASH. Запустите его с именем файла в качестве первого аргумента. Например, «./change_name_script.sh hdf5-1.8.18.tar.gz», и он будет работать так, как вы хотите.

 #!/bin/bash filename=$1 gunzip < $filename | tar xf - move_filename=$(echo $filename | sed -r 's/.tar.gz$//') first_part=$(echo "$move_filename" | sed -r 's/-.*$//') second_part=$(echo "$move_filename" | sed -r 's/^.*-//') mkdir $first_part mv $move_filename $first_part/$second_part 
  • Самый быстрый способ переименования файлов без переименования пути каталога
  • Как удалить место во всех подкаталогах в сценарии оболочки?
  • Перемещение нескольких файлов из каталога в другой с помощью заметной ошибки
  • Получить все имена файлов с определенным количеством символов
  • Какую команду следует использовать для перемещения этих конкретных элементов?
  • Линейные системные файлы перемещены, как вернуться при загрузке с установщика?
  • Как вы можете перемещать или копировать определенные файлы из списка текстовых файлов
  • Измените только расширение файла
  • Каков подходящий способ сделать «mv ./* ./subdirdir/»?
  • Заменить кучу файлов, поддерживающих путь
  • Unix NFS Mounts and Moving Files
  • Найти и переместить с исключением
  • Linux и Unix - лучшая ОС в мире.