Если он был установлен в режиме сервера, по умолчанию у него не будет графического интерфейса.
Вам нужно выбрать один для установки с помощью yum
чтобы получить список пакетов yum, которые могут работать, запустите
yum grouplist
Если доступно, запустите
yum groupinstall "Server with GUI"
или
yum groupinstall "X Window System"
Для просмотра режима переключения GUI с помощью
init 5
Еще несколько вариантов:
использовать анонимную функцию:
(){ files=${(F)@}; } *(U.^D)
использоватьprintf -v
:
printf -v files '%s\n' *(U.^D)
(что у одного есть \n
в конце ). $files
не должен быть заранее объявлен как массив.
вы не можете напрямую назначать расширения глобусов скалярной переменной в одном назначении, поскольку глобусы генерируют списки , поэтому они подходят только для присваивания массивам или ассоциативным массивам. Если вы действительно хотели (, но мне непонятно, почему вы ), вы можете обойти это, используя подстановку команд, как показал @Gilles, хотя это означает разветвление подоболочки и удаление всех завершающих строк новой строки.
Другой подход, не связанный с разветвлением, заключается в использовании zsh
функции динамического именованного каталога , которая является одним из способов вызова пользовательского кода для создания пользовательского расширения.
zsh_directory_name_functions+=(expand-glob)
expand-glob() {
emulate -L zsh
set -o extendedglob
local match
[[ $1 = n && $2 = (#b)glob:(*):(*) ]] && {
local sep=$match[1]
reply=(${~match[2]}(#qN))
reply=(${(pj:$sep:)reply})
}
}
, а затем выполните:
files=~[glob:$'\n':*(#qU.^D)]
Но ты уверен, что хочешь именно этого? Как только вы соедините эти файлы любым символом, кроме /
или \0
, вы не сможете вернуть исходный список файлов, так как эти(/
и\0
)— единственные символы, которые не могут встречаться в имя файла.
Почему бы не хранить данные в массиве?:
files=(*(NU.^D))
Тогда вы знаете, что ничего не теряете.
И если вам нужно распечатать этот список пользователю, вы всегда можете сделать:
print -rC1 -- $files
Либо используя любую из поддерживаемых zsh
форм цитирования, чтобы не потерять информацию:
print -rC1 -- "${(@q+)files}" # human friendly
print -rC1 -- "${(@qq)files}" # safe for reinput to the shell or z flag
Обратите внимание, что эти [^.]
или ^D
должны быть необходимы только в том случае, если вы в противном случае установили параметр dotglob
глобально.
print -C1
печатает в один столбец,это то же самое, что и print -l
, за исключением случая пустого списка аргументов (, что может произойти здесь, поскольку я использовал квалификатор N
ullglob glob, чтобы избежать ошибки, если нет соответствующего файла ), где последний все еще выводит пустую строку.
Если вы хотите сохранить этот список файлов в файл, чтобы вы могли редактировать его и загрузить результат позже, сохраняя при этом всю информацию, вы можете:
files=(*(.U^D))
printf '%q\n' $files > file
При использовании %q
имена файлов заключаются в кавычки с использованием zsh
кавычек, поэтому, например, файл с именем foo<newline>bar
будет отображаться как $'foo\nbar'
.
Затем вы можете загрузить отредактированный файл в новый массив с чем-то вроде:
newfiles=("${(f@Q)$(<file)}")
Где флаг раскрытия параметра Q
отменяет заключение в кавычки.
А потом сделать:
(($#files == $#newfiles)) &&
for old new (${files:^newfiles}) mv -i -- $old $new