Кажется, открыто -BSD netcat не поддерживает команды -e
или --exec
, которые помогают нам выполнить файл после установления соединения. Поскольку это может привести к тому, что удаленная машина запустит потенциально опасную команду для подключенной машины, эти команды считаются опасными.
В качестве обходного пути я просто удалил Open -BSD netcat и установил традиционный сервер -netcat, следуя решению на сайтеhttps://stackoverflow.com/questions/10065993/how-to-switch-to-netcat-traditional-in-ubuntu. Это дало мне доступ к команде exec -. Команда, которую я запускаю на сервере: :nc -l -p порт -номер -e Файл -Сценарий -до -выполнить
Один из простых способов составить список всех пакетов по дате установки — использовать журнал.:
awk '/\[ALPM\] installed/ { print $(NF-1) }' /var/log/pacman.log
Журнал — единственный способ получить эту информацию, если вы считаете, что «дата установки пакета» не зависит от версии пакета.
Это еще один способ, которым действительно считает, что пакет привязан к версии пакета --, если пакет обновлен, определенная дата установки изменится.
export LC_ALL=C
while IFS= read -r pkg; do
printf '%s %s\n' \
"$(date -d "$(pacman -Qi "$pkg" | sed -n '/^Install Date/s/.* : //p')" +%s)" \
"$pkg"
done < <(pacman -Qq) | sort -nk1
(Это можно сделать быстрее, используя libalpm
напрямую или выполняя один pacman -Qi
и итерируя каждый пакет с помощью awk
, но код будет более сложным.)