Как рекурсивно распаковывать gz-файлы на удаленном хосте с ограниченными командами?

У меня есть куча файлов .jpg.gz в директории, которую мне нужно распаковать.

Я знаю, что команда распаковки:

tar -xzvf FileNameHere.jpg.gz

Но есть ли флаг, который вы можете рекурсивно распаковать файлы в каталоге? У меня более ста сжатых файлов, и я не хочу вручную распаковывать каждый из них.

Кроме того, поскольку я являюсь SSHing в службе хостинга, у меня есть только следующие команды:

 arch bzip2 cal cksum cmp cp crontab basename cd chmod ls date df du dos2unix unix2dos file getfacl gzip head hostid tail mkdir mv nslookup sdiff tar uptime wget whois unzip 

  • подсветка синтаксиса в vim над ssh
  • Как избежать использования 'ssh-add ~ / .ssh / id_rsa' для каждого нажатия на репозиторий github?
  • Как сделать копию файла и поместить его в тот же каталог, который был скопирован?
  • RYSNC над SSH не работает для ограниченной оболочки
  • Логин ssh после изменения IP-адреса
  • Изменено / etc / ssh / sshd_config. Теперь не могу добраться до SU. Я привинчен?
  • Как редактировать / etc / hosts без sudo?
  • Есть ли способ получить HTML-страницу, отображаемую через Chrome / Chromium с консоли?
  • 3 Solutions collect form web for “Как рекурсивно распаковывать gz-файлы на удаленном хосте с ограниченными командами?”

    Чтобы извлечь ваши файлы, вам нужно использовать gzip :

     gzip -d *.jpg.gz 

    Вы говорите об этом рекурсивно; учитывая, что у вас нет find , вам придется посещать каждый каталог по очереди и выполнять указанную выше команду.

    Если оболочка хоста, к которому вы подключились, является версией bash> = 4.0, вы можете включить опцию globstar . Когда включено, ** glob будет рекурсивно соответствовать подкаталогам. Итак, следующее должно делать то, что вам нужно:

     shopt -s globstar for gz_file in **/*.jpg.gz; do gzip -d "$gz_file" done 

    Не требуется ручное рекурсирование в требуемые подкаталоги.

    Хотя сценарий оболочки можно записать для рекурсии каталогов (но я не думаю, что у вас есть доступ к удаленному sh), вы можете использовать этот грубый, но эффективный ярлык, предполагая, что ваш удаленный ограниченный ssh ​​расширяет подстановочные знаки:

     gzip -d *.jpg.gz gzip -d */*.jpg.gz gzip -d */*/*.jpg.gz ... 

    … в зависимости от глубины и размера подкаталогов.

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

    edit: Это использовалось для включения ответа с использованием ls -R, но это не дает полных путей.

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