Как распаковать набор файлов в каталоге?

В каталоге около 10 000 файлов, некоторые из которых являются .fits, а некоторые из них – .tar. Теперь мне нужно распаковать только файлы .tar. Хотя выполнение условия if представляется разумным, команда untar «xvf» работает только для каждого файла, что наносит ущерб использованию цикла.

  • Как извлечь и сшить многострочный tar arcvhive без начального файла
  • как сообщить tar только исключить каталог из корня, но не каталог с тем же именем глубже в дереве?
  • Тар перезаписывает файлы только для чтения
  • Восстановление инкрементного резервного копирования Tar с помощью одной команды
  • Как можно разделить ссылки при извлечении из файла tar?
  • Почему мой tar-файл больше, чем резервная копия каталога
  • Извлеките TAR на SD-карту и проверьте содержимое впоследствии
  • touch и tar из текстового файла
  • 2 Solutions collect form web for “Как распаковать набор файлов в каталоге?”

    команда untar «xvf» работает только для каждого файла

    что делает использование цикла необходимым :

    for file in ./*.tar; do tar xvf "$file"; done 

    Фактически с помощью find вы можете выполнять работу без циклов. Как это:

     find -iname '*.tar' -maxdepth 1 -exec tar xvf '{}' \; 

    Логика такова:

    • -iname сопоставляет файлы с расширением .tar (без -iname регистра) и
    • -maxdepth 1 ограничивает диапазон соответствия до глубины 1 (так что ./*/*.tar и тому подобное не будут согласованы)
    • finally -exec выполняет команду tar xvf в согласованных файлах (обратите внимание, что и {} требуется экранирование, обратитесь к find(1) за дополнительной информацией)
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.