Найти файлы, созданные 1 час назад

Я считаю ваш анализ немного сложным. Начнем с базового случая:

without_last([_], []).

Когда вы находитесь в последнем элементе, результатом должен быть пустой список.

Поэтому индуктивный случай должен иметь место, когда мы не находимся в последнем элементе. В случае, когда у меня есть некоторый элемент, прикрепленный к произвольно длинному списку, этот список без последнего элемента - это только хвост списка без последнего элемента с текущим элементом спереди. Или:

without_last([X|Xs], [X|WithoutLast]) :- 
    without_last(Xs, WithoutLast).

Это работает во всех направлениях.

?- without_last([1,2,3,4], X).
X = [1, 2, 3] ;
false.

?- without_last([1,2], X).
X = [1] .

?- without_last([1], X).
X = [] ;
false.

?- without_last([], X).
false.

?- without_last(X, [1,2,3]).
X = [1, 2, 3, _G294].

?- without_last([1,2,3,4], [1,2,3]).
true.

?- without_last([1,2,3,X], [1,2,3]).
true.
1
задан Angela Marielle Estigoy 16 January 2019 в 02:32
поделиться

3 ответа

Некоторые варианты:

find . -cmin -60 -exec ls -ld {} \;
find . -cmin -60 -type f -exec ls -l {} \;
find . -cmin -60 -print0 | xargs -0 ls -ld
find . -cmin -60 -type f -print0 | xargs -0 ls -l

Последние два лучше, но требуют GNU-findutils.

Редактировать: Как отмечалось другими, -cmin -60 означает недавно измененные файлы, -cmin +60 означает не недавно измененные файлы.

0
ответ дан Lorinczy Zsigmond 16 January 2019 в 02:32
поделиться

Я думаю, что вы хотите

find . -cmin +60 -exec ls -al {} \;

. В нем будут перечислены все файлы в текущем каталоге, созданные более 60 минут назад.

«+» в «+60» означает более 60 минут назад, в то время как «-» в «-60» означает менее 60 минут назад.

0
ответ дан wei li 16 January 2019 в 02:32
поделиться

Если в вашем find отсутствует опция cmin, вы можете touch файл с отметкой времени 1 час назад и использовать find с -newer.

0
ответ дан Walter A 16 January 2019 в 02:32
поделиться