Обнаружены некоторые ошибки:
#
являются синтаксической ошибкой. $
в Col2
var для Column_list =
эхо "$ Column_list"> big_data_file _ $$
удалит всю информацию, ранее записанную в big_data_file $$
. Измените на >>
. if [
должна быть изменена на if [
. echo "Категория
должна содержать пробел: echo" Категория
. )
, удалите один. fi
(минимум 5) и, возможно, сделано
. Я устал. Протестируйте свой код, очистите его, сделайте домашнюю работу.
Если это должна быть одна строка:
stat -c %Y./* 2>/dev/null | awk -v d="$(date +%s)" 'BEGIN {m=d} $0 < m {m = $0} END {print d - m}'
stat -c %Y./* 2>/dev/null
печатать временные метки всех файлов, игнорируя ошибки (, поэтому отсутствие файлов приводит к отсутствию вывода)С помощью awk:
-v d="$(date +%s)"
сохранить текущую метку времени в переменнойd
BEGIN {m=d}
инициализировать m
наd
$0 < m {m = $0}
отслеживание минимума вm
END {print d - m}
распечатать разницу. С zsh
иperl
:
perl -le 'print 0+-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(добавьте квалификатор D
glob, если вы также хотите учитывать скрытые файлы (, но не .
и не..
)).
Обратите внимание, что для символических ссылок учитывается время модификации файла, в который они преобразуются. Удалите -
в квалификаторах glob, чтобы вместо (учитывать время модификации символической ссылки, и используйте (lstat$ARGV[0] && -M _)
в perl
, чтобы получить возраст символической ссылки ).
Это дает возраст в днях. Умножьте на 86400, чтобы получить количество секунд:
perl -le 'print 86400*-M $ARGV[0]' /path/to/dir/*(N-Om[1])
(N-Om[1])
:квалификатор глоба :N
:включает nullglob
для этого шара. Поэтому, если в каталоге нет файла, расширяется до нуля, заставляя perl
-M
возвращать undef
. -
:заставляет квалификаторы next glob применяться к цели символических ссылок Om
:обратная (заглавная )порядок по времени модификации (таким образом, от самого старого к самому новому какls -rt
)[1]
:выбрать только первый подходящий файл -M file
:получает возраст содержимого файла. 0+
или 86400*
принудительное преобразование в номер (для случая undef
).