quinta-feira, 7 de março de 2013

Criando atalhos no Linux

Quem usa Windows está acostumado a criar atalhos para aplicações e arquivos. No Linux esse recurso também existe, mas com algumas opções a mais. Uma forma simples de criar atalhos é usando o comando "ls". Por exemplo, vamos criar um atalho para a pasta /home/ricardo/tmp/cmais em /tmp/cmais.

$ ln -s /home/ricardo/tmp/cmais /tmp/cmais
$ ls -l /tmp/
total 4
lrwxrwxrwx 1 ricardo    ricardo      23 Mar  7 13:43 cmais -> /home/ricardo/tmp/cmais
srw-rw-rw- 1 root       root          0 Mar  7 08:43 cmg-statistic
drwxr-xr-x 2 ricardo    ricardo    4096 Mar  7 13:32 hsperfdata_ricardo
drwxr-xr-x 2 tomcat6    tomcat6    4096 Mar  7 08:44 hsperfdata_tomcat6
$

Podemos perceber pelo comando ls que a pasta cmais aponda ( ->) para /home/ricardo/tmp/cmais. Esse tipo de atalho funciona igual no Windows.

A segunda forma é usando o ls sem parâmetros.

# ln /home/ricardo/tmp/cmais/Cmais_20130115.html /home/cmais 
# ls -l /home/cmais 
-rw-r--r-- 2 ricardo ricardo 3882 Mar  1 17:02 /home/cmais 
#

A diferença é que esse tipo de link, chamado de hard link, só pode ser feito dentro da mesma partição. Dependendo do sistema de arquivos você pode inclusive dar permissões diferentes para os arquivos.

Uma terceira forma é usando o mount. O comando "mount" permite que uma parte do sistema de arquivos (uma pasta, por exemplo) seja montada em outro lugar do disco.

Por exemplo, vamos montar a pasta /home/ricardo/tmp/cmais na pasta /tmp/cmais.


# mount --bind /home/ricardo/tmp/cmais /tmp/cmais/
# ls -l /tmp/cmais/
total 236
-rw-r--r-- 1 ricardo ricardo   3130 Mar  1 17:02 Cmais_20130115-chart.html
-rw-r--r-- 1 ricardo ricardo   3882 Mar  1 17:02 Cmais_20130115.html
-rw-r--r-- 1 ricardo ricardo 134792 Mar  1 17:02 Cmais_20130115.png
-rw-r--r-- 1 ricardo ricardo   4047 Mar  1 17:02 Cmais_20130115-resources.html
-rw-r--r-- 1 ricardo ricardo  21258 Mar  1 17:02 Cmais_20130115.res.png
-rw-r--r-- 1 ricardo ricardo  67763 Mar  1 17:02 Cmais_20130115-tasks.html
lrwxrwxrwx 1 ricardo ricardo     25 Fev 15 17:01 index.html -> Cmais_20130115-chart.html
#

O que alterarmos na pasta original será automaticamente refletido na pasta montada.

Lembre-se que isso é apenas para facilitar as coisas, quando, por exemplo, o caminho de uma pasta fica muito grande (quem trabalha com java sabe do que estou falando). Isso não vale como um backup!