Respuestas:
Estoy bastante seguro de que la -R
bandera funciona, siempre me ha funcionado de todos modos. Lo que no funcionará, y lo que me hizo tropezar temprano en mi uso de la línea de comandos, es usarlo *
en un directorio con archivos / directorios ocultos. Haciendo
$ chown -R /home/user/*
no hará los archivos y directorios ocultos. Sin embargo, si lo sigues con
$ chown -R /home/user/.[^.]*
entonces harás todos los archivos ocultos (pero no .
o ..
como /home/user/.*
lo harías). Habiendo dicho todo eso, esperaría
$ chown -R /home/user
para obtener todos los archivos y directorios ocultos /home/user
, aunque eso, por supuesto, también cambiará los permisos del directorio en sí, lo que podría no ser lo que pretendía.
chown nginx:nginx -R /path/to/.[^.]*
y solo cambió la propiedad a archivos ocultos .dot. no todo.
*
y seguirlo .[.^]*
para obtener todos los archivos.
Creo que el siguiente comando debería funcionar para esto
chown -hR userid:usergroup /nameofdirectory/nameofsubdir/
"chown -R" funciona, pero una alternativa sería usar find.
find /path/to/dir -exec chown USER {} \;
+
lugar de ;
como el terminador de -exec será más eficiente, ya que usará la cantidad mínima necesaria de horquillas para cortar en lugar de una bifurcación por archivo / directorio
El uso de bucle con la ls -A
opción, podemos encontrar todos los archivos ocultos y el directorio excluir .
y ..
a continuación, cambiar la propiedad de todos los archivos ocultos y directorio.
for i in `ls -A | grep "^\."`;do chown -R user:group $i;done
Usar xargs
opción conls -A
ls -A | grep "^\." | xargs chown user:group
Para más detalles, haga clic aquí y visite mi sitio
Además, si eres como yo, probablemente ejecutarás chown principalmente desde el directorio actual. Yo estaba acostumbrado a correr de esta manera: chown rails.rails -R *
. Simplemente cambiando el asterisco a un punto (abreviatura del directorio actual) de esta manera: chown rails.rails -R .
trae todos los directorios ocultos.
chown
funcionará con archivos y directorios ocultos. En el siguiente ejemplo, cambiaremos la propiedad de usuarios y grupos para todos los archivos en ~/some/folder
. Todos los archivos incluyen todos los archivos ocultos (por ejemplo .bashrc
, .profile
etc.) y carpetas en el ~/some/folder
nivel y debajo. Tenga en cuenta en particular que no deseamos cambiar la propiedad de ~/some
, por lo que excluiremos el archivo ~/some/..
de los cambios de propiedad.
$ cd ~/some/folder
$ sudo chown -R usrname:grpname .
$
Podrías hacer algo como
for i in `ls -A`;do chown -R user:group $i;done
El -A
( capital A) es importante ya que excluye '.' y '..'
chown
en el directorio tiene el efecto secundario de que cambie los permisos en el directorio en sí, así como todo su contenido, que puede o no ser lo que desea.