Похоже, chown с рекурсивным флагом не будет работать со скрытыми каталогами или файлами. Есть ли простой обходной путь для этого?
37
Я почти уверен, что -R
флаг работает - он всегда так и есть для меня. То, что не сработает, и то, что сбило меня с толку в начале использования командной строки, это использование *
в каталоге со скрытыми файлами / каталогами. Так делать
$ chown -R /home/user/*
не будет делать скрытые файлы и каталоги. Однако, если вы последуете с
$ chown -R /home/user/.[^.]*
тогда вы будете делать все скрытые файлы, (но не .
или ..
как /home/user/.*
будет делать). Сказав все это, я ожидал бы
$ chown -R /home/user
чтобы получить все скрытые файлы и каталоги внутри /home/user
- хотя это, конечно, также изменит права доступа к самому каталогу, что может не соответствовать вашим ожиданиям.
chown
каталогом имеет побочный эффект: вы изменяете права доступа к самому каталогу, а также ко всему его содержимому, что может быть, а может и не быть тем, что вы хотите.chown nginx:nginx -R /path/to/.[^.]*
и это только изменило владение скрытыми файлами .dot. не все.*
и следовать им,.[.^]*
чтобы получить все файлы.я считаю, что следующая команда должна работать для этого
источник
"chown -R" работает, но альтернативой будет использование find.
источник
+
вместо -exe в;
качестве терминатора для -exec будет более эффективным, так как будет использовать минимально необходимое число вилок для сгущения вместо одного разветвления на файл / каталогВы можете
dotglob
временно изменить атрибут для расширения. файлы, а затем вернуть его.Больше
dotglob
можно найти здесьисточник
Использование для цикла с
ls -A
параметром, мы можем найти все скрытые файлы и директории исключить.
и..
затем изменить владельца для всех скрытых файлов и каталогов.Используйте
xargs
опцию сls -A
Для получения более подробной информации нажмите здесь и посетите мой сайт
источник
Кроме того, если вы похожи на меня, вы, вероятно, будете использовать chown в основном из текущего каталога. Я привык работает это следующим образом :
chown rails.rails -R *
. Простое изменение звездочки на точку (сокращение от текущего каталога), например, так:chown rails.rails -R .
ввод всех скрытых каталогов.источник
chown
будет работать со скрытыми файлами и каталогами. В следующем примере мы изменим владельца пользователя и группы для всех файлов в~/some/folder
. Все файлы включают в себя все скрытые файлы (например.bashrc
,.profile
и т. Д.) И папки на~/some/folder
уровне и ниже. В частности, обратите внимание, что мы не хотим менять владельца~/some
, и поэтому мы исключим файл~/some/..
из изменений владельца.источник
Выбирать ВСЕ файлы в текущем каталоге и подкаталогах для текущего пользователя;
или если пользователь не может создать несколько файлов из-за ограниченных прав доступа;
источник
Вы могли бы сделать что-то вроде
Символ
-A
( заглавная A) важен, поскольку исключает «.» а также '..'источник