$PS1 – contando e mostrando no prompt a quantidade de arquivos e diretórios.

A variável PS1 é responsável pelo nosso prompt de comando no bash, geralmente definida no /etc/profile como uma variável GLOBAL. Essa variável pode assumir ‘n’ valores, inclusive o resultado de uma função shell script, que é o caso mostrado aqui no post.

Imprimindo o valor atual da variável PS1

bash-4.1# echo $PS1
s-v$

Existem um conjunto de opções a serem definidas. No exemplo, a opção s representa o shell, v a versão.

[root@bacula-dir conf.d]# echo $PS1
[u@h W]$

Neste caso, u = user, h = hostname, W = diretório que estou no momento e $ para informar # para root e $ não root

Contando arquivos e diretórios

Basta adicionar as seguintes linhas no /etc/profile para ser aplicado a todos os usuários que fazem login, no ~/.bash_profile para apenas determinado usuário, ~/.bashrc para usuários que não precisam fazer login no terminal, que é o caso de quem usa terminais virtuais gráficos, xterm, gnome-terminal e etc …

function quanto {
 dir=$(ls -da */ | wc -l)
 arq=$(find ./ -maxdepth 1 -type f | wc -l)
 echo "dir: $dir - arq: $arq"
}
export PS1='u@h [`quanto`]> '

Como vai ficar o meu prompt ?

root@set-codin-666 [dir: 2 - arq: 14]> cd /
root@set-codin-666 [dir: 18 - arq: 0]> ls
bin  boot  dev  etc  home  lib  media  mnt  opt  proc  root  sbin  srv  sys  tmp  tralhas  usr  var
root@set-codin-666 [dir: 18 - arq: 0]> cd /tralhas/
root@set-codin-666 [dir: 7 - arq: 2]> ls
Documentos  ISO  Imagens  Music  Plano de Aprendizado v1.doc  VMS  e17_c3d2_23c3.edj  pacotes  scripts
root@set-codin-666 [dir: 7 - arq: 2]>

 

Advertisements

3 thoughts on “$PS1 – contando e mostrando no prompt a quantidade de arquivos e diretórios.

  1. Olá amigo
    Gostaria do seu contato, pois tenho uma demanda em que terei que localizar arquivos acessados nos últimos três anos separados por cada ano e gerar um relatório disso e depois copiar esses arquivos para uma máquina windows server 2008.
    Será que pode me ajudar com esse script ?
    Abraćos.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s