Introdução
Muitas vezes no dia precisamos criar uma pasta e em seguida entrar nesta pasta para realização de algum procedimento dentro desta, que seria algo como:
-> mkdir pasta -> cd pasta
Utilizando funções
É possível criar funções( comandos ) personalizados modificando o arquivo ~/.bashrc ( ou ~/.profile se for mac ) que é o arquivo com código Shell que é executando quando é iniciada uma nova instância do terminal, desta forma, toda vez que você abrir o terminal, ou logar no servidor este arquivo será executado a as funções contidas nele ficarão disponíveis.
Para isso adicione as seguinte linhas neste arquivo:
function mkcd { local final_dir="" for i in $@ do [ ! -d "$i" ] && mkdir -pv "$i" final_dir="$i" done cd "$final_dir" }
Uso:
-> pwd /Users/edgardleal/tmp -> mkcd nova/pasta pasta_final -> pwd /Users/edgardleal/tmp/pasta_final
No final você estará na pasta "pasta_final".
OBS: nesta função foi utilizado o parâmetro -p do comando mkdir que cria toda a raiz de pasta quando a pasta "pai" não existir.
Ex.:
mkdir -p a/b/c/d/e/f #caso estas pastas não existam , todas serão criadas. # Mesmo que a pasta "a" não exista, toda esta estrutura será criada . └── a └── b └── c └── d └── e └── f
Utilizando alias
Em algumas situações o recurso que desejamos implementar é tão simples que não precisamos criar um função Shell, neste caso podemos criar apenas um alias para um determinado comando. Uma situação comum para utilização deste recurso é com comando onde costuma-se repetir sempre os mesmos parâmetros. Veja alguns exemplos:
Listando os maiores arquivos de uma pasta
Existem situações onde é preciso liberar espaço em disco rapidamente para que ou seu serviço não pare por falta de espaço no HD ou simplesmente para fazer uma limpeza.
# Este comando lista os 5 maiores arquivos na pasta atual alias findbig='find . -type f -exec ls -s {} \; | sort -n -r | head -5'
Listando arquivos
Já se perguntou quantas vezes por dia você executa o comando ls ?
Abaixo segue alguns exemplos de como enriuecer seu arquivo .bashrc/.profile:
alias ll='ls -alF' # Todos os arquivos formato lista classificados alias la='ls -A' # Todos os arquivos exceto . e .. alias l='ls -CF' # Lista os arquivos em colunas
Você encontra estes e outros exemplos no arquivo completo aqui.