Как рекурсивно распаковывать 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 

  • Головоломка: передача файлов между двумя серверами (ssh, ftp, http multipart ...)
  • Что произойдет с сеансом сеанса по ssh, когда соединение потеряно?
  • Я не могу успешно сгенерировать SSH-туннель внутри контейнера докеров
  • Можно ли имитировать щелчок мышью на удаленной машине через SSH?
  • Вызов сценария Bash ожидает сценария с основным SSH-соединением
  • Как я могу подтвердить идентификатор удаленного хоста SSH, к которому я пытаюсь подключиться?
  • Мастер-сценарий среды, основанный на $ LOGNAME для запуска любого вызова оболочки
  • Могу ли я использовать SSH для туннелирования определенного порта через мой сервер
  • 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, но это не дает полных путей.

    Interesting Posts

    Командная строка: как вы поворачиваете файл PDF на 90 градусов?

    Есть ли клиенты IRC с командной строкой, использующие readline?

    Я установил java, и он работает, но когда я пытаюсь вернуть Java домой, он пуст

    распечатать все совпадения или заменить все строки в BIG-файле, который не является строковым (без разделителей строк)

    Большие шрифты «xterm» на дисплеях HIDPI

    xmodmap -e 'удалить mod2 = Num_Lock' NumLock не работает с сеансом Citrix

    Установка Linux Mint 11 LXDE x64 поверх ubuntu-минимального

    Можно ли разделить задачу «root» на несколько «более мощных» пользователей?

    Восстановить мою историю прошлых команд?

    Получить список установленных принтеров

    Выполнить команду if на удаленной машине

    Есть ли способ сделать apt-отчет, какие пакеты в dist-upgrade будут использовать дополнительное дисковое пространство?

    Почему я получаю ошибку 403 при посещении / javascript на моем сайте?

    Отключение readahead с помощью hdparm или POSIX_FADV_RANDOM

    Можно ли получить доступ к дискам независимо в томе RAID-1?

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