Из kernel README:
"make localmodconfig" Создает конфиг на основе текущего конфига и загруженных модулей (lsmod). Отключает любой модуль опции, которые не нужны для загруженных модулей.
Чтобы создать localmodconfig для другой машины, сохраните lsmod этой машины в файл и передайте его в качестве параметра LSMOD.
target$ lsmod > /tmp/mylsmod target$ scp /tmp/mylsmod host:/tmp host$ make LSMOD=/tmp/mylsmod localmodconfig
Вышеуказанное также работает при кросс-компиляции.
"make localyesconfig" Аналогично localmodconfig, за исключением того, что он преобразует все опции модуля во встроенные (=y) опции.
Хотя perl , вероятно, будет быстрее, чем перебор большого каталога "x" раз, вот простое решение методом грубой силы.
Внешний цикл определяет, сколько файлов будет перемещено --3 в этом примере. Внутри этого цикла мы инициализируем «самый старый» файл первым именем файла, полученным в результате подстановки *
. Затем внутренний цикл сравнивает временную метку каждого файла, чтобы определить, старше ли он, чем(-ot
)текущий -самый старый файл. Если это так, мы обновляем «самое старое» имя файла. В конце внутреннего цикла мы сообщаем и перемещаем этот файл.
for((count=0; count < 3; count++))
do
set -- *
oldest=$1
for f in./*
do
if [ "$f" -ot "$oldest" ]
then
oldest=$f
fi
done
echo mv -- "$oldest"./.archive
mv -- "$oldest"./.archive
done
heapq.nsmallest
баш:
find -printf '%T@ %p\n' |
python noldest.py 1000 |
xargs -Ixxx mv xxx directory_for_old_files
Здесь команда find
выводит список файлов в формате «секунды с 1970 (%T@ ), пробел, имя файла (%p )». Завершающая команда xargs
берет имена файлов из стандартного ввода одно за другим и применяет команду mv xxx directory_for_old_files
, заменяя ими xxx.
Реализация noldest.py может быть:
import sys
from heapq import nsmallest
from datetime import datetime
n = int(sys.argv[1])
date_file_pairs = (line.split(' ', maxsplit=1) for line in sys.stdin) # generators are lazy
def parse_date(date_and_filename):
seconds_from_1970 = float(date_and_filename[0])
return datetime.fromtimestamp(int(seconds_from_1970))
for _, filename in nsmallest(n, date_file_pairs, key=parse_date):
print(filename.rstrip('\n')) # lines in sys.stdin have trailing newlines
Производительность зависит от реализации алгоритма nsmallest
из стандартной библиотеки Python.