Как определить новейший созданный файл в каталоге на Linux-машине?

Вопрос:

Я пытаюсь выяснить способ определения самого последнего файла, созданного в каталоге. Я не могу использовать модуль, и я нахожусь в ОС Linux.

Лучший ответ:

просто простой Google дал мне хороший ответ

@list = 'ls -t';
$newest = $list[0];

или полностью в perl

opendir(my $DH, $DIR) or die "Error opening $DIR: $!";
my %files = map { $_ => (stat("$DIR/$_"))[9] } grep(! /^\.\.?$/, readdir($DH));
closedir($DH);
my @sorted_files = sort { $files{$b} <=> $files{$a} } (keys %files);

$ sorted_files [0] – последнее изменение. Если это не фактический файл интереса, вы можете выполнять итерацию через @sorted_files, пока не найдете интересные файлы.

Ответ №1

Нет, вы не можете получить файлы по дате их рождения, так как их нет команды linux, чтобы получить дату рождения файла, но, конечно же, вы можете получить доступ, изменить и изменить информацию о файле. Чтобы получить информацию о доступе, изменении и изменении времени для любого файла, используйте это:

stat file-name

Кроме того, чтобы получить последний измененный/измененный файл, используйте это:

ls -ltr | tail -1

Ответ №2

Пытаться:

cd DIR
ls -l -rt | tail -1

Ответ №3

Непослушный IO::All метод: ;-)

use IO::All;
use v5.20;

# sort files by their modification time and store in an array:
my @files = sort{$b->mtime <=> $a->mtime} io(".")->all_files;
# get the first/newest file from the sort:
say "$files[0] ". ~~localtime($files[0]->mtime);

Оцените статью
TechArks.Ru
Добавить комментарий