Linux использует только огромные страницы

Это будет обрабатывать общий случай, когда вы знаете, что есть повторяющиеся имена файлов, но не знаете, что это такое:

find -type f -print0 |
    awk -F/ 'BEGIN { RS="\0" } { n=$NF } k[n]==1 { print p[n]; } k[n] { print $0 } { p[n]=$0; k[n]++ }'

В скрипте awkмы обрабатываем пути к файлам, завершающиеся NULL (, поэтому мы можем обрабатывать имена файлов, которые могут содержать символы новой строки ), с $0в качестве текущего пути к файлу. Переменная nсодержит компонент имени файла. k[]— это хэш (с ключом n), который подсчитывает количество вхождений этого имени файла, а p[]— другой хэш (, также с ключом n), который содержит первый соответствующий полный путь.

Пример

# Preparation
mkdir -p tmp/a tmp/b
touch tmp/a/xx tmp/a/yy tmp/b/yy tmp/b/zz

# Do it
find tmp -type f -print0 |
    awk -F/ 'BEGIN { RS="\0" } { n=$NF } k[n]==1 { print p[n]; } k[n] { print $0 } { p[n]=$0; k[n]++ }'

tmp/a/yy
tmp/b/yy

# Tidyup
rm -rf tmp
1
31.12.2020, 10:56
1 ответ

Невозможно настроить ядро ​​так, чтобы только использовали огромные страницы.

1
18.03.2021, 22:39

Теги

Похожие вопросы