Вы можете попробовать следующие сценарии оболочки, используя только find
, sed
,sort
(и echo
для части Usage ). find
может делать то же, что и stat
. Единственное отличие — это символ !
, который отменяет проверку -newerat
.
olderdate
:#!/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 <reference date> <directory> "
echo "Example: $0 2018-11-30."
exit
fi
find "$2" -type d ! -newerat "$1" -printf "%AY-%Am-%Ad %AT %p\n" |
sed -e 's%\..* /% /%' \
-e 's%\..* \.% .%' | sort
newerdate
:#!/bin/bash
if [ $# -ne 2 ]
then
echo "Usage: $0 <reference date> <directory> "
echo "Example: $0 2018-11-30."
exit
fi
find "$2" -type d -newerat "$1" -printf "%AY-%Am-%Ad %AT %p\n" |
sed -e 's%\..* /% /%' \
-e 's%\..* \.% .%' | sort
Вы указываете не только дату, но и время, hours
, hours:minutes
или hours:minutes:seconds
, если вы указываете второй параметр,
./olderdate '2018-12-19 18' /path
Я провел небольшое тестирование и заметил, что в некоторых случаях find
или stat
изменяют дату и время доступа к просматриваемым каталогам. Вроде как это произойдет, когда что-то изменилось в каталоге, но время доступа к самому каталогу не обновилось.
В этих случаях время доступа будет установлено на текущее время. Но когда find
или stat
снова будут искать в каталоге, дата и время доступа останутся прежними (, если только что-то снова не было изменено в каталоге ).
Чтобы игнорировать эту ошибку (просроченный, недействительный, ненадежный... сертификат )используйте --no-check-certificate
параметр:
wget --no-check-certificate music-server.net/download/install.sh
ту же опцию можно использовать сwget2
:
sudo apt install wget2
wget2 --no-check-certificate music-server.net/download/install.sh