Сzsh
:
for f (./*.zip(Om)) unzip $f
Где квалификатор Om
glob должен быть в обратном порядке по времени модификации (новейший последний ).
С bash
и GNUls
:
(
export LC_ALL=C
eval "files=($(ls -drt --quoting-style=shell-always./*.zip))"
for file in "${files[@]}"; do
unzip "$file"
done
)
Или с bash
4.4+ и GNU find
и GNU sort
и последней версией GNUcut
:
readarray -td '' files < <(
LC_ALL=C find. -maxdepth 1 -name '*.zip' ! -name '.*' \
-printf '%T@\t%p\0' |
sort -zn |
cut -zf2-)
for file in "${files[@]}"; do
unzip "$file"
done
Если вы можете гарантировать, что имена файлов не будут содержать символы новой строки, в GNU xargs
вы можете сделать:
ls -rtd./*.zip | xargs -rd '\n' -n1 unzip
Если вы можете гарантировать, что имена файлов не будут содержать пробелы, одинарные кавычки, двойные кавычки, символы обратной косой черты или последовательности байтов, которые не образуют допустимые символы, и что есть по крайней мере один не -скрытый zip-файл, с любой реализацией xargs
вы могли бы сделать:
ls -rtd./*.zip | xargs -n1 unzip
Согласно этой проблеме buildroot вызов clock_nanosleep_time64
или clock_gettime64
проблематичен и вызывает:
The OpenSSH server on my device closes the connection abruptly
Я могу войти после добавления этого патча в исходный код openssh перед сборкой.
Измените UsePAM no
на UsePAM yes
и перезапустите sshd
service sshd restart