2010-09-30 10 views

Respuesta

21

Usted sólo puede usar la bandera -R (recursivo).

chmod -R 777 /Users/Test/Desktop/PATH 
32

La cuestión es que el * está siendo interpretado por su concha y se está expandiendo a un archivo llamado TEST_FILE que pasa a estar en el directorio de trabajo actual, por lo que está diciendo find para ejecutar el comando llamado TEST_FILE cuales no existe No estoy seguro de lo que estás tratando de lograr con ese *, solo debes eliminarlo.

Además, debe usar la expresión idiomática -exec program '{}' \+ en lugar de -exec program '{}' \; para que find no bifurque un nuevo proceso para cada archivo. Con ;, se bifurca un nuevo proceso para cada archivo, mientras que con +, solo bifurca un proceso y pasa todos los archivos en una sola línea de comando, que para programas simples como chmod es mucho más eficiente.

Por último, chmod puede hacer cambios recursivas por su cuenta con la bandera -R, por lo menos que necesite buscar archivos específicos, simplemente hacer esto:

chmod -R 777 /Users/Test/Desktop/PATH 
5

Mediante el uso de CHMOD sí:

Para archivo recursiva:

chmod -R 777 foldername or pathname 

Para no recursiva:

chmod 777 foldername or pathname 
+0

Esos dos tienen el mismo aspecto. O_o –

+0

Si mac se queja sobre la operación no permitida, ejecute con sudo –

3

que no tiene una máquina de Mac OS X para probar esta encendido pero en bash en Linux utilizo algo como lo siguiente a chmod sólo directorios:

find . -type d -exec chmod 755 {} \+ 

pero esto también hace lo mismo:

chmod 755 `find . -type d` 

y lo mismo ocurre esto:

chmod 755 $(find . -type d) 

Los dos últimos están utilizando diferentes formas de s ubcommands. El primero es usar los backticks (antiguos y depreciados) y el otro la sintaxis del subcomando $().

Creo que en su caso, lo siguiente hará lo que quiera.

chmod 777 $(find "/Users/Test/Desktop/PATH") 
+1

Creo que es una mejor respuesta ya que en la mayoría de los casos los archivos y directorios no tendrán los mismos permisos. PERO creo que el '.' la referencia es peligrosa: si estás en el directorio incorrecto, puedes complicar las cosas fácilmente. Además, las respuestas 2 y 3 no funcionan si la lista de argumentos es demasiado larga. – mrtnmgs

Cuestiones relacionadas