La forma más fácil de hacer esto es usar la Terminal. Para hacerlo, necesitas tener acceso a sudo, con lo cual asumo que estás familiarizado, al menos conceptualmente, desde que mencionaste Linux.
TL; DR:
find . \! -perm 666 -type f -exec sudo chmod 666 {} \;
es de una sola línea que hará el truco, suponiendo que lo ejecute desde la carpeta exacta que desee, por ejemplo, $HOME/Desktop/files_are_in_this_folder
. Sin embargo, si solo es un archivo, solo puedes ejecutar sudo chmod 666 /path/to/the/file
.
Permítame explicar, lo mejor que pueda, qué está pasando.
find(1)
es una utilidad de búsqueda extremadamente poderosa de , mucho más que whereis
. La razón por la que es tan poderoso es que tiene tantas opciones diferentes; como un ejemplo más simple, intente find $HOME -size +100M
; Esto encontrará todos los archivos, recursivamente, más de 100 MB y le mostrará una lista de ellos. Extraiga lo siguiente:
/Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.3-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
/Users/jayands/Documents/2013-02-10.wav
/Users/jayands/Documents/2013-02-17.wav
/Users/jayands/Documents/2013-02-24.wav
/Users/jayands/Documents/2013-03-03.wav
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data0.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data1.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data2.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data4.sdb
/Users/jayands/Library/Caches/com.apple.Safari/Cache.db
/Users/jayands/Music/iTunes/iTunes Media/Podcasts/Bronyville/93 Bronyville Episode 093 – Friendship Gives You Wings!.mp3
Como puedes ver, encontrará todo, incluso las cosas que no quieras modificar. Si tienen una convención de nomenclatura específica, digamos, *.wav
, también puede especificar el comando de búsqueda para buscar por nombre. find . -name '*.wav'
Dije todo eso para familiarizarte con la parte más fácil de find
; La siguiente es la parte que tiende a hacer tropezar a la gente. find
tiene directivas que puede hacer que haga a lo que encuentre. -print
es tan común que es el predeterminado y generalmente no tiene que ser especificado. -print0
, sin embargo, es un poco más interesante: hace casi lo mismo que -print
, pero el 0 es un carácter NUL que reemplaza los saltos de línea; hace que la tubería a xargs
más fácil. Sin embargo, el único en el que estamos interesados es la directiva -exec
, que le permite ejecutar los comandos de shell más simples en cada archivo, lo que nos lleva a {}
y \;
. El \;
es escapar de un punto y coma para la terminación del comando exec y las llaves vienen de awk
, si recuerdo correctamente. Se reemplazan por lo que se encuentra.
chmod
sigue existiendo desde los días de Unix; de hecho, muchos de los comandos que puede ejecutar en Linux en xterm
tienen algo de analógico en el terminal de Mac. chmod 666
le dará acceso de lectura y escritura para todos; sin embargo, si no puedes recordar eso, prueba chmod a=rw
. Ambos comandos significan: "tome el archivo del que estoy a punto de informarle y establezca los permisos de acceso de lectura-escritura para todos".
Además, dado que está colaborando, puede querer ejecutar un servidor privado git
, Perforce ( p4
) o Mercurial ( hg
), ya que estos sistemas de gestión también administrar los permisos de los archivos.
Más información
find
-
man find
de la Terminal
- Este tutorial
chmod
-
man chmod
sudo
-
man sudo
git
: Desde la página de inicio de git
Si necesita más ayuda, solo pregunte.
Antes de que olvide: sudo
le pide su contraseña de administrador para esa máquina.