Вы выполняете драйвер с закрытым исходным кодом. Возможно, это имеет ошибку.
Вы могли попытаться переключиться на драйвер с открытым исходным кодом: Изменение в Section "Device"
строка Драйвера к Driver "nv"
в /etc/X11/xorg.conf
.
По крайней мере, это - то, где конфигурация хранится в моем Debian. Можно искать строку как это в файле журнала:
(==) Using config file: "/etc/X11/xorg.conf"
Это должно работать на то, в чем Вы нуждаетесь:
find . -maxdepth 1 -iname 'ChownFileNames*' -exec chown hadoop:hadoop -- {} . \;
\+
вместо \;
в таких случаях. Это запустит один процесс на несколько файлов insted одного процесса на файл, поэтому задание будет сделано намного быстрее на большой сумме файлов.
– rush
20.06.2012, 16:01
\+
вместо \;
в таких случаях. Это запустит один процесс на несколько файлов insted одного процесса на файл, поэтому задание будет сделано намного быстрее на большой сумме файлов.
– rush
20.06.2012, 16:01
|
(“канал”) символ означает передавать вывод команды слева к команде справа. Команда find . -maxdepth 1
перечисляет файлы в текущем каталоге (плюс .
самостоятельно). Команда grep 'ChownFileNames*' -exec chown hadoop:hadoop -- {} . \;
не имеет никакого смысла: Вы являетесь передающими find
опции к grep
команда.
find
самостоятельно имеет способ соответствовать именам файлов, -name
предикат. Это берет подстановочный шаблон оболочки в качестве аргумента.
Вы могли использовать grep
для фильтрации списка но необходимо было бы предоставить допустимую командную строку grep
. Сохранить только имена файлов, соответствующие шаблону оболочки ChownFileNames*
, необходимо было бы использовать регулярное выражение /ChownFileNames[^/]$
. Затем необходимо было бы проанализировать вывод grep
преобразовать список соответствия именам в параметры командной строки. Предположение, что Вы запускаете Linux и имена файлов, не содержит новых строк, Вы могли использовать xargs
:
find . -maxdepth 1 |
grep '/ChownFileNames[^/]*$' |
xargs -d '\n' chown hadoop:hadoop
Это намного более просто и более устойчиво для использования find
-exec
действие. Обратите внимание, что можно использовать -exec … {} +
выполнять команду для пакета файлов сразу вместо однажды на файл. Можно также сделать find
перечислите текущий каталог.
find . maxdepth 1 \( -name . -o -name 'ChownFileNames*' \) -exec chown hadoop:hadoop {} +
В выполнении обычно нет никакого смысла find
когда Вы только соответствуете файлам по имени (и не, например, по дате) в текущем каталоге (не пересекая подкаталоги). Если нет столько файлов в текущем каталоге, что это делает командную строку слишком долго, просто используйте
chown hadoop:hadoop . ChownFileNames*