¿Cómo aplicar el comando CHMOD a cualquier archivo con un nombre específico de forma recursiva en Linux?

¿Cómo aplicar el comando CHMOD a cualquier archivo con un nombre específico de forma recursiva en Linux?

¿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 filenameque 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 findconocer xargsopciones más avanzadas. En particular, mire la -print0bandera y correspondiente -0si xargsobtiene 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 chmoden 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.

información relacionada