Parece que chown con la bandera recursiva no funcionará en directorios o archivos ocultos. ¿Hay alguna solución simple para eso?
37
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
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.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
fuente
"chown -R" funciona, pero una alternativa sería usar find.
fuente
+
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 / directorioPuede cambiar el
dotglob
atributo temporalmente para expandirlo. archivos y luego revertirlo.Más información
dotglob
se puede encontrar aquífuente
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.Usar
xargs
opción conls -A
Para más detalles, haga clic aquí y visite mi sitio
fuente
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.fuente
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.fuente
Para dividir TODOS los archivos en el directorio y subdirectorios actuales para el usuario actual;
o si el usuario no puede crear algunos archivos debido a permisos restringidos;
fuente
Podrías hacer algo como
El
-A
( capital A) es importante ya que excluye '.' y '..'fuente