Один из методов, который используется для поиска непрочитанной почты, заключается в проверке временных меток в почтовом файле очереди. Если файл был записан в после обращения (прочитан ), т.е. его mtime
больше, чем atime
, то есть непрочитанная почта:
for f in /var/spool/mail/* ; do
[ $(stat -c '%Y -gt %X' "$f") ] && echo "$f has unread mail"
done
Это, конечно, считает все в почтовом ящике «прочитанным» после его открытия, независимо от того, просматривал ли кто-нибудь отдельные сообщения.
Во многих случаях прочитанные сообщения также перемещаются из каталога спулинга (в ~/mbox
), поэтому можно просто проверить размер файла.
Так как .partition[].partition
содержит идентификатор для любого конкретного раздела, мы можем перебрать их и для каждого идентификатора удалить разделы, которые не имеют этого конкретного идентификатора.
Далее предполагается, что идентификатор представляет собой простое целое число без пробелов и т. д.:
for part in $(jq '.partitions[].partition' file.json); do
jq --argjson part "$part" 'del(.partitions[] | select(.partition != $part ))' file.json >file-partition-"$part".json
done
Это создаст один файл для каждого раздела, названный в честь раздела, а не индекса в массиве .partition[]
.