
¿Necesito saber cómo aplicar un comando CHMOD solo a archivos que tienen un nombre específico de forma recursiva?
chmod 755 -R filename
Algo como lo anterior, pero debería aplicarse a cualquiera filename
que exista en cualquier subcarpeta.
Respuesta1
Esto encontrará todos los archivos denominados nombre de archivo, de forma recursiva desde el directorio actual, y los pasará a chmod
.
find -name filename | xargs chmod 755
Consulte las páginas de manual para find
conocer xargs
opciones más avanzadas. En particular, mire la -print0
bandera y correspondiente -0
si xargs
obtiene errores sobre archivos con espacios en el nombre.
Respuesta2
También hay un parámetro ejecutivo en find que hará lo mismo:
find . -name filename -exec chmod 755 {} \;
Respuesta3
Puede obtener lo mejor de ambos mundos si utiliza el +
operador para buscar y ejecutarlo chmod
en muchos archivos a la vez.
find . -name filename -exec chmod 755 '{}' +
Siempre debes poner un '
alrededor de tu {}
, de lo contrario, un nombre de archivo con un espacio podría estropear las cosas. En este caso no es un problema, pero tengo la costumbre de hacerlo.