Файлы списка определенного типа под dir?

Недостающий файл зависимости от модуля не должен иметь значения вообще.

Вы создавали изображение initrd после установки? Если бы определенные модули требуются, но не статически встраиваются в ядро, Вам было бы нужно изображение initrd, например, модули файловой системы

Если дело обстоит не так, попробуйте начальную загрузку без quiet параметр, и видит то, что говорит ядро.

P.S., где Ваша конфигурация ядра прибывает из? Вы запускали, модификация из старого файла конфигурации (просто гарантируют, что все необходимые модули присутствуют),

2
28.07.2014, 19:21
5 ответов

Вы можете использовать операторы проверки файлов, описанные в man test . Например, чтобы перечислить символические ссылки:

for i in *;do if [ -L "$i" ] ;then printf -- "%s\n" "$i";fi;done
4
27.01.2020, 21:52

Вы можете использовать find .

Вывести список всех файлов:

find . ! -name . -prune -type f

Вывести все символические ссылки:

find . ! -name . -prune -type l

Вывести список всех исполняемых файлов:

find . ! -name . -prune -type f -perm +111

Вы можете прочитать документацию POSIX найти для получения дополнительных опций.

3
27.01.2020, 21:52

Команда типа ls -d * @ выводит список файлов, имена которых заканчиваются на @ . Символ @ является частью шаблона, которому должно соответствовать имя файла. Когда ls -F отображает символ после имени файла, этот символ не является частью имени файла, это дополнительная индикация, добавленная ls (это точка -F опция).

ls не имеет возможности выбрать, какие типы файлов нужно перечислить. Если имена ваших файлов не содержат специальных символов, таких как символы новой строки или суффиксы, добавленные в ls -F , вы можете использовать ls -F для вывода списка определенных типов файлов и фильтрации его вывода. . Например, чтобы перечислить символические ссылки в текущем каталоге, вы можете использовать

ls -F | grep '@$'

. Более надежный способ перечисления файлов выбранного типа - это команда find . В отличие от ls , find является рекурсивным; используйте действие -prune , чтобы остановить рекурсию. Другое отличие состоит в том, что find не обрабатывает файлы, имена которых начинаются с . (точечные файлы) специально, тогда как ls пропускает их, а шаблоны оболочки, такие как * , также пропускают их. Например, следующая команда выводит список символических ссылок в текущем каталоге:

find . -name . -o -type l -print -o -prune

Другой способ выполнить фильтрацию - перебрать все файлы в цикле и выполнить тест, чтобы выбрать тот, который вам нужен.

for x in *; do
  if [ -L "$x" ]; then echo "$x"; fi
done

В zsh вы можете использовать квалификаторы glob для ограничения файлов по типу. Например, следующая команда zsh выводит список символических ссылок в текущем каталоге:

print -rl *(@)
2
27.01.2020, 21:52

Я бы посоветовал рассмотреть perl , потому что он имеет полезный встроенный оператор - grep . Что, в отличие от версии команды, фактически позволяет выполнить тест «блок кода».

Итак, вы можете:

perl -e 'print join "\n", grep { -d } glob "$dir/*"'

Что будет печатать файлы, соответствующие тесту -d и ряду других:

http://perldoc.perl.org/functions/-X. html

0
27.01.2020, 21:52

Скажем, вы хотите видеть в списке только файлы с исходным кодом на языке c (суффикс .c):

ls -l *.c

Здесь будут перечислены все файлы с кодом на языке c.

Enjoy

-2
27.01.2020, 21:52

Теги

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