Почему нельзя сжать все файлы с помощью find и zip? - PullRequest
0 голосов
/ 26 мая 2019

У меня следующая структура папок

.
├── 5.avi
├── a
│   ├── 1.avi
│   ├── b
│   │   └── 2.avi
│   └── c
│       └── 3.avi
└── b
    ├── 4.avi
    ├── l
    └── s

Я использую следующую команду для сжатия всех avi файлов:

find .  -iname *avi | xargs zip videos.zip

Проблема в том, что find возвращает только5.avi, но если 5.avi не существует, find возвращает остальные файлы.

Как решить эту проблему и скомпилировать все avi файлы?

1 Ответ

2 голосов
/ 26 мая 2019

Оболочка раскрывает звездочки (*) перед тем, как передать аргументы команде (find в вашем случае).Фактическая команда будет выглядеть как

find . -iname 5.avi

. Вы можете проверить это, добавив echo к вашей команде, например,

echo find . -iname *avi

То, что вы хотите сделать, это передать *avi as-это команда.Для этого вы должны поставить звездочку в кавычки или избежать обратной косой черты.Ваша команда должна быть:

find . -iname '*.avi' | xargs zip videos.zip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...