С 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
). Решение 1:соберите и установите sfdisk из исходников (, чтобы иметь возможность использовать более новую версию)
wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.35/util-linux-2.35.tar.gz
tar -xvf util-linux-2.35.tar.gz
cd cd util-linux-2.35
./configure
make
make install
/usr/local/bin/sfdisk --delete $disk
Решение 2:используйтеfdisk
# list disk and partitions
fdisk -l
# open the target disk with fdisk
fdisk /dev/target-disk
# then use the d command option to delete the partition you want to remove
# then use the w command option to save the changes