Cambiar la ubicación por defecto de los directorios de usuario en GNU/Linux

Escrito por el , actualizado el .
gnu-linux planeta-codigo
Comentarios

GNU
Linux

Los directorios de Descargas, Documentos, Música, Imágenes, Vídeos, Escritorio, Plantillas y Público «bien conocidos» por defecto se encuentran en el directorio de inicio o home del usuario, en mi caso sería /home/picodotdev/ o abreviadamente ~/.

Por preferencias o necesidad según el usuario, la ubicación de cada uno de estos directorios se puede cambiar individualmente. Por ejemplo, si en la carpeta Documentos, Música e Imágenes se tiene un montón de archivos que ocupan varias decenas de gigabytes que no se usan de forma habitual ni se desea tener en el SSD ocupando espacio la ubicación de estos directorios se puede cambiar por uno que se encuentra en un disco mecánico USB o tarjeta microSD externa.

Los discos duros SSD se han abaratado muchísimo en los últimos años pero aún no han alcanzado a los discos duros mecánicos en el precio de € por GB. Un disco duro mecánico de 4 TB tiene un precio bastante asequible. A lo largo del tiempo he ido reaprovechando los discos duros de portátiles para los que compré una caja USB para utilizarlos como discos duros externos USB y ahora tengo varios, uno de 500 GB, otro de 320 GB, y dos de 120 GB.

Cuando compré el Intel NUC compré la versión slim sin bahía para disco SATA 2.5” y solo le puse un SSD de 500 GB con conexión M.2. Tenía intención de comprar una tarjeta SDXC o una memoria USB pequeña para tenerla siempre conectada al ordenador y como una forma de ampliar la capacidad de almacenamiento. Sin embargo, ni la tarjeta microSD ni la memoria USB es barata comparada con el precio de un SSD SATA. Al final he optado por utilizar uno de esos discos duros externos que tengo para el mismo propósito. Lo que necesitaba era cambiar la ubicación de esos directorios por defecto para que en vez de estar en la carpeta de inicio de mi usuario y en el SSD estuviesen en el disco duro externo USB.

La ubicación de los directorios de usuario se puede cambiar modificando las rutas en el archivo de configuración ~/.config/user-dirs.dirs. En este caso poniendo la ubicación del punto de montaje del disco duro externo USB.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="/run/media/picodotdev/bmovenegro/Escritorio/"
XDG_DOWNLOAD_DIR="/run/media/picodotdev/bmovenegro/Descargas/"
XDG_TEMPLATES_DIR="/run/media/picodotdev/bmovenegro/Plantillas/"
XDG_PUBLICSHARE_DIR="/run/media/picodotdev/bmovenegro/Público/"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="/run/media/picodotdev/bmovenegro/Música/"
XDG_PICTURES_DIR="/run/media/picodotdev/bmovenegro/Imágenes/"
XDG_VIDEOS_DIR="/run/media/picodotdev/bmovenegro/Vídeos/"

Cambiar los valores de los directorios de usuario a otro directorio requiere que esos directorios estén disponibles a iniciar sesión de usuario en el entorno de escritorio. Para que el disco duro externo USB se monte al iniciar el sistema he definido un servicio de tipo mount para systemd en la ubicación /etc/systemd/system/run-media-picodotdev-bmovenegro.mount con el siguiente contenido. El disco duro se monta en el directorio /run/media/bmovenegro/.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Unit]
Description=Disk bmovenegro mount

[Mount]
What=/dev/disk/by-uuid/f0fe2765-00aa-4c2a-adef-83a3264b8f4f
Where=/run/media/picodotdev/bmovenegro/
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target

El identificador UUID de un dispositivo se obtiene con el comando lsblk.

1
2
3
4
5
6
7
8
9
$ lsblk -o +uuid,name
NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT                       UUID                                   NAME
sda             8:0    0 465,8G  0 disk                                                                          sda
└─sda1          8:1    0 465,8G  0 part  /run/media/picodotdev/bmovenegro f0fe2765-00aa-4c2a-adef-83a3264b8f4f   sda1
nvme0n1       259:0    0 465,8G  0 disk                                                                          nvme0n1
├─nvme0n1p1   259:1    0   511M  0 part  /boot                            7869-6341                              nvme0n1p1
└─nvme0n1p2   259:2    0 465,3G  0 part                                   3067348f-58f4-48fd-be4b-7cb3aae80dd1   nvme0n1p2
  └─lvm       254:0    0 465,3G  0 crypt                                  c0fVvN-1QTv-HccD-tyEt-cl49-GM7M-xDNGJQ lvm
    └─vg-root 254:1    0 465,3G  0 lvm   /                                4b561dc9-bbd6-4433-bc53-c879bde68042   vg-root

Con esta configuración para el explorador de archivos en este caso Nautilus de GNOME la ubicación de estos archivos de usuario es transparente, los directorios aparecen en el panel lateral. Aunque en el directorio home siguen existiendo las carpetas originales de los directorios de usuario realmente cuando se hace clic en el panel lateral del directorio Documentos se muestra el contenido /run/media/bmovenegro/Documentos y no de ~/Documentos.

Directorios de usuario en el directorio home y en disco USB externo

En el caso de GNU/Linux los directorios de usuario además están localizados de forma automática, esto es al listar los directorios los nombres están en el idioma del usuario de forma consistente, al contrario de como ocurre en otros sistemas operativos que sus nombres se mantienen en inglés aún en su explorador de archivos aparecer en el idioma del usuario creando una inconsistencia entre los nombres que se listan desde la terminal y los que aparecen en su explorador de archivos.

Directorios de usuario en el directorio home y en disco USB externo