Como saber lista de diretórios em um sistema de arquivos?

8

Se eu executar o comando sudo df -h , receberei a saída abaixo:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              12G  9.5G  1.1G  91% /
/dev/sda4             3.8G  1.5G  2.1G  41% /home
/dev/sda1              99M   75M   20M  80% /boot
tmpfs                 3.9G     0  3.9G   0% /dev/shm
/dev/sdc1              51G  2.6G   46G   6% /u000

Mas, como saberei a lista de diretórios em /sda2 ? Por exemplo, se eu executar o comando ls / , tenho todos os diretórios em raiz.

$ ls /
bin   cdunix     dev  etc   lib    lost+found  misc  mnt1  mtp     net  PatchInstall  root  selinux  sys       tmp   usr
boot  cron_4058  esm  home  lib64  media       mnt   mnt2  NB_DIR  opt  proc          sbin  srv      tftpboot  u000  var
  • Mas, existe algum comando ou caminho através do qual eu possa listar seu sistema de arquivos também?
  • Desde então, há muito menos espaço restante em /dev/sda2/ . Como posso desocupar mais espaço partição?
por ursitesion 17.11.2014 / 17:14

3 respostas

3

Se eu estou lendo esta pergunta corretamente, existe um programa chamado tree . Isso listaria todos os diretórios em uma estrutura semelhante a uma árvore. Com ele instalado, você pode fazer algo como:

tree -x Onde -x Permanece apenas no sistema de arquivos atual. Ala encontrar -xdev.

UPDATE: Eu tentei tree -P /dev/xvda e parecia ter mostrado diretórios sob esse sistema de arquivos. O comando -P significa padrão. Então, para responder a sua pergunta, você deve ser capaz de usá-lo para listar diretórios em sistemas de arquivos.

Para listar os primeiros níveis no diretório / , tente o comando:

tree -LP 1 /dev/xvda

em que L é o nível de profundidade de exibição máxima da árvore de diretórios.

Consulte as páginas man aqui

    
por 17.11.2014 / 17:32
8

Se você estiver procurando por diretórios que estejam ocupando espaço e não estejam em uma partição diferente, então você deseja du -hx --max-depth=1 / . O -x diz para não descer em diretórios que estão em outros sistemas de arquivos (partições). O --max-depth=1 pede para imprimir apenas uma linha (listando o espaço total para esse diretório e todos os subdiretórios) para cada diretório em / em vez de cada subdiretório.

Você pode então começar a pesquisar os subdiretórios maiores para descobrir o que está ocupando o espaço.

    
por 17.11.2014 / 18:04
3

But, how will I know the list of directories under /sda2?

Não existem pastas em / dev / sda2, / dev / sda2 é uma partição no disco (sda é o disco e 2 é o número das partições).

But, is there any command or way through which I can also list down their filesystem too?

Como você tem apenas um sistema de arquivos montado, eles estão todos no / fs.

A melhor maneira de ver uma lista de sistemas de arquivos montados é usar o mount:

$ sudo mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=2018106,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=3232436k,mode=755)
/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)

Para ver a quantidade de armazenamento usada por uma pasta, você pode usar o comando du , por exemplo:

~/tmp$ du -sh
752K    .

du tem muitas opções completas de uso. Um muito bom ao rastrear pastas grandes é --max-depth=1 , o que limitará a profundidade da saída:

du -h --max-depth=1 /
7,9M    /sbin
702M    /lib

Você receberá muitas mensagens de erro se executar isto em / sem ser root.

du pode ajudar você a descobrir quais arquivos excluir para criar mais espaço. Se você não puder excluir nenhum arquivo, precisará redimensionar a partição ou mover alguns dados para uma partição diferente.

    
por 17.11.2014 / 17:23