Cambiar los permisos a ficheros y directorios en linux #chmod

Como algunos sabran para poder asignar permisos a los archivos y directorios en linux se utiliza el comando chmod, pero este no sabe reconocer si lo que estamos cambiando es un archivo o un directorio a menos claro que lo indiquemos a mano, pero por ejemplo al ejecutar:

$ chmod -R 777 /directorio

Aquí el comando funciona de forma recursiva y asignara los permisos 777 a todo fichero y directorio que encuentre dentro del directorio «directorio», lo cual es bastante util, pero por ejemplo si lo que nos interesa es solo asigarle esos permisos a los archivos entonces podemos ayudarnos con el comando fin y la orden seria de la siguiente manera:

find  -type f -exec chmod -R 777 {} \;

Con esto le damos permisos 777 solamente a los archivos ya que el comando find buscara solamente archivos, esto es especificado en el argumento -type f.

Ahora si lo que queremos es aplicar solamente a los directorios seria así:

find -type d -exec chmod -R 664 {} \;

En este caso el comando find buscara solo los directorios.

En este ejemplo no especifique la ruta a buscar de find ya que supondre que vamos a buscar dentro del directorio en el cual nos encontremos en ese momento, ahora si quieren un directorio especifico que no este dentro de la ruta relativa al promp seria así:

find /directorio/subdirectorio -type f -exec chmod -R 664 {} \;

El comando find tiene muchas mas funciones que se podrían utilizar como por ejemplo el parámetro -maxdepth, que desciende según le indiquemos cuantos niveles, esto es útil ya que si solo queremos asignar permisos a los archivos de un directorio pero no a los que están en los demás subdirectorios, podríamos hacer lo siguiente:

find -maxdepth 1 -type f -exec chmod -R 664 {} \;

Hay dejo que le sigan experimentando, para que vean que tan útil y poderosa es la consola de linux.

Configurar Open in Terminal

Para los que usan Nautilus y también la consola sabrán que una forma fácil de usar algún comando en algún directorio determinado es abriendo directamente la terminal con «Open in Terminal» del menú contextual.

La consola que se abre es la consola por default que uno tenga en ese momento, por lo general es gnome-terminal, pero si como yo usan por ejemplo terminator y quieren cambiar a esa terminal deben hacer lo siguiente:

Siempre y cuando tengan instalado terminator

gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/terminator

Y con eso se configurara la terminal «terminator» que sera la predeterminada para muchas aplicaciones.

Si quieren cambiar por otra terminal solo hay que indicarle cual cambiando /usr/bin/terminator.

Nota: En las ultimas versiones de nautilus quitaron esta opción  por lo que si quieren seguir usando esta utilidad deberán migran a nemo un fork de nautilus para Linux Mint.

Buscar y borra archivos con el comando #find y #rm #linux

Haciendo y desaciendo algunas cosas en linux, pense ¿ Como puedo borrar un montón de archivos y de un solo tipo?

Pues la respuesta es: usando la consola, y para ello utilice el comando find y el comando rm

Por ejemplo si quisiéramos borrar todas las fotos con formato png haríamos lo siguiente:

$ find -type f -name "*.png" -exec rm -f {} \;

Y así nos borraría absolutamente todos los archivos png que tengamos en todos los subdirectorios que esten en donde ejecutemos el comando.

Ahora si quisieramos hacer lo contrario que nos borre todos los archivos excepto los png, seria de la siguiente manera:

$ find -type f -not -name "*.png" -exec rm -f {} \;

Y eso es todo.

Tengan mucho cuidado con esto ya que un error en el tipo de archivo o no ponerle -not cuando deberían ponerlo les puede provocar que pierdan absolutamente todos sus archivos.