Вот как я это исправил--
При загрузке Ubuntu Live CD мне пришлось изменить параметр загрузки Linux на acpi=off nomodeset debug=
. Я считаю, что это было излишним, так как для загрузки Ubuntu мне нужно было просто использовать acpi=off
.
Теперь --это отключило бы все мои acpi, поэтому у меня не было статистики батареи, и мой компьютер думал, что он находится в режиме полета --бесполезно. В конце концов я следовал пошаговому руководству, чтобы определить, почему проблема была в acpi, но оказалось, что это не так.
Все, что мне пришлось сделать, это добавить параметры загрузки acpi_osi=
, потому что этот HP BIOS немного странный --, это решило все мои проблемы.
Вы можете добавить еще один -exec
к find
, чтобы выполнить chmod
для файлов. Удалите -ls
, если он вам не нужен :
find. -type f -name '*FW*' -exec grep -iEq 'chmod.*archive|archive.*chmod' {} \;\
-ls -exec chmod 777 {} +
Вы можете добавить еще один -exec
в конце, чтобы обновить права доступа к файлам, прошедшим предыдущие тесты, , как показано Фредди , или вы можете объединить grep
и chmod
в встроенный sh -c
скрипт:
find. -type f -name '*FW*' -exec sh -c '
for pathname do
if grep -q -i -e "chmod.*archive" -e "archive.*chmod" "$pathname"
then
chmod 777 "$pathname"
fi
done' sh {} +
Это будет использовать find
как своего рода генератор имен путей для цикла в скрипте sh -c
.
Этот цикл берет все имена путей, заданные встроенному сценарию, проверяет каждый из них с помощью grep
, и если шаблон совпадает в файле, этот файл получает свои разрешения (, возможно ), обновленные.
В bash
вы можете вместо генерации путей с помощью find
использовать шаблон подстановки имен файлов:
shopt -s globstar nullglob dotglob
for pathname in./**/*FW*; do
if [ -f "$pathname" ] && grep -q -i -e 'chmod.*archive' -e 'archive.*chmod' "$pathname"
then
chmod 777 "$pathname"
fi
done
Единственная видимая разница здесь заключается в том, что это также будет обрабатывать символические ссылки, которые соответствуют шаблону.
Параметр оболочки globstar
включает шаблон **
, который рекурсивно сопоставляется с подкаталогами. Параметр оболочки nullglob
заставляет не совпадающие -шаблоны исчезать, а не оставаться нераскрытыми. Параметр оболочки dotglob
заставляет шаблоны соответствовать скрытым именам.
В оболочке zsh
это может быть сокращено до
for pathname in./**/*FW*(.ND); do
if grep -q -i -e 'chmod.*archive' -e 'archive.*chmod' $pathname
then
chmod 777 $pathname
fi
done
... где .
, N
и D
соответствуют тесту -f
(, но не соответствуют символическим ссылкам ), настройке nullglob
и настройке dotglob
в bash
, в свою очередь.