Попробуйте это, Вы отсутствуете; разделить обе команды. Также &
вероятно, не нужно, Вы могли использовать его для параллелизации tar
вызовы, но это, вероятно, принесет больше вреда, чем пользы, если у Вас будет больше чем несколько файлов (то они будут конкурировать за ввод-вывод и ЦП).
Для сортировки списка файлов правильно можно использовать sort -V
, какие виды, принимающие во внимание номера версий ( *
подстановочный знак на ударе или плоскости sort
перечислил бы версию 10 перед версией 4, как 1 <4). Это должно работать:
for f in `ls live*.tgz | sort -V`; do echo $f; tar xzvf $f; done
Не протестированный, память формы:
ls -1rt live*tgz | xargs tar xvf
Объяснение:
ls -1
-> перечисляют файлы в одном columls -t
-> перечисляют файлы на основе времени изменения (лучше всего подход ко времени создания)ls -r
-> перечисляют в обратном порядке (более старый первый)Затем список передается по каналу, чтобы смолить канавку xargs, таким образом, tar берет каждый файл один за другим и распаковывает их, как Вы хотели от более старого до более нового.
HTH