Como ordenar arquivos dentro de um diretório via terminal? [fechadas]

-3

Eu quero classificar subdiretórios dentro de um diretório principal de acordo com o tamanho, e também quero classificar arquivos dentro dos subdiretórios de acordo com o arquivo criado data através do terminal. Isso é possível?

Editar : Depois que eu classifiquei os arquivos dentro da pasta seguindo as respostas abaixo, ela não se reorganiza enquanto eu estou vendo através do nautilus. Eu quero que os arquivos sejam reorganizados enquanto o visualiza no nautilus.

    
por Avinash Raj 03.12.2013 / 16:09

4 respostas

1

Se você quiser classificar subdiretórios / arquivos dentro de um diretório de acordo com o tamanho, digite terminal

gsettings set org.gnome.nautilus.preferences default-sort-order "size"

Para ordenar subdiretórios / arquivos de acordo com a hora da modificação do arquivo,

gsettings set org.gnome.nautilus.preferences default-sort-order "mtime"

Você também pode classificar de acordo com name e type . Mas você não pode definir dois valores simultaneamente, como um para um diretório e outro para subdiretórios. Não há problema em alterar os valores a qualquer momento. A mudança ocorrerá imediatamente para todos os diretórios.

Além disso, você pode classificar na ordem inversa para size , name , modification time ou type . Para fazer este tipo no terminal,

gsettings set org.gnome.nautilus.preferences default-sort-in-reverse-order true
    
por souravc 23.12.2013 / 19:28
1

Para ordenar os arquivos de acordo com o tamanho, você pode usar o seguinte comando:

ls -Sl

Ordenar os resultados por data criada é um pouco mais complicado. Veja o seguinte post neste sentido:

por Radu Rădeanu 03.12.2013 / 16:45
1

Abra seu terminal e digite como

du -sk * | sort -rn 
    
por rɑːdʒɑ 23.12.2013 / 14:39
0

Eu não acho que seja possível sem um loop - pelo menos não no bash - mas se você estiver disposto a usar loops, aqui está um exemplo que o colocará no caminho certo.

#!/bin/bash
for dir in $(du -sh */ | sort -rh | cut -f2); do
    echo "*** $(du -sh $dir) ***"
    ls -l --sort=time $dir
done

Este script…

  • faz um loop em todas as entradas de du -sh , classificadas por tamanho - cut apenas formata a saída
  • e, para cada entrada, imprime o tamanho total desse diretório ( du -sh ) e lista seu conteúdo classificado por tamanho ( ls -l --sort=time ).
por drc 03.12.2013 / 16:50