Как рекурсивно распаковывать 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 не принимается, и никакая задержка между попытками входа ssh
  • Сообщение emacsclient отказано
  • Как передать закрытый ключ ssh через строку, а не файл?
  • ssh -> screen -> ssh - как убить удаленный экранированный ssh, не убивая оригинальную сессию ssh
  • Звук через соединение SSH в MobaXTerm
  • сеанс .ksh зависает после того, как он неактивен
  • SSH попытки входа в минуту на каждый IP-адрес
  • Как ввести сетевой файл в ffmpeg
  • 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

    Список * все * IP-маршруты к месту назначения в таблице маршрутизации Linux

    После обновления ядра звук больше не работает

    заменить в начале строки

    Преобразование путей tar-архива без его извлечения

    Режим беспроводного мониторинга Broadcom заморозит систему

    Почтовый журнал Centos 7?

    альтернативная альтернатива

    Редактирование nsswitch.conf для проверки файлов, отличных от / etc / passwd, при поиске локальных файлов для деталей пользователя

    Присоединиться: два файла – но только добавить последние два столбца

    Запустить xterm в текущий каталог через thunar

    Ужасная ситуация – файловые системы, смонтированные одновременно несколькими независимыми экземплярами ОС

    rsync –delete не удалял файл в пункте назначения, а с помощью ssh

    Проверка подлинности пакета пакета Debian

    Можно ли использовать один SSH-ключ для каждой учетной записи для каждой учетной записи на данном удаленном сервере?

    emacs цвета, основанные на переменной окружения $ TERM

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