Existe um limite de item para o explorador de arquivos?

4

Esta é uma questão sobre o Xubuntu 14.04.

Muito curta história, eu tive que usar o programa recoverjpeg para restaurar algumas fotos que eu esqueci de fazer backup após uma nova instalação. Isso resultou em arquivos de 850k sendo colocados em minha pasta pessoal e agora não serão carregados. Quando eu vou para casa / [nome de usuário] ele apenas gira, mesmo depois de uma reinicialização e apenas diz "carregando o conteúdo da pasta". Já faz horas. Devo apenas esperar ou há outro aplicativo de pasta que eu possa carregar para tornar esses arquivos acessíveis? Eles são arquivos de imagem muito importantes, então não posso arriscar perdê-los. Isso também significa que não posso carregar nada na pasta pessoal (Documentos, downloads, etc.) na GUI OU no terminal.

Qualquer conselho é apreciado. Não tenho certeza do que fazer nesse ponto. Os arquivos não são meus e, se não conseguir recuperá-los, talvez morra. Obrigado.

    
por dronkmunk 07.05.2015 / 14:00

2 respostas

6

A solução mais simples seria mover os arquivos para um diretório diferente. Dessa forma, pelo menos, seu $HOME será carregado. Abra um terminal e execute estes comandos:

mkdir jpeg-dir
find . -maxdepth 1 -type f -iname '*jpg' -or -iname '*jpeg' -exec mv {} jpeg-dir +

Isso moverá todos os arquivos cujo nome terminará em jpg , jpeg , JPEG , JPG etc para ~/jpeg-dir . Isso deve permitir que você carregue seu diretório inicial normalmente.

No entanto, isso significa que você terá problemas para ver o diretório jpeg-dir . Então, agora que você tem tudo em ~/jpeg-dir , você pode criar subdiretórios, cada um dos quais contém, por exemplo, 5000 arquivos:

cd ~/jpeg-dir
jpegs=(*)
c=0; 
for((i=0;i<${#jpeg[@]};i+=1500)); do 
    let c++ 
    mkdir -p dir"$c"
    mv "${jpegs[@]:$i:1500}" dir"$c"
done
    
por terdon 07.05.2015 / 14:25
5

O que está acontecendo é que o gerenciador de arquivos está criando uma lista (com ls ) e isso levará muito tempo quando houver muitos arquivos.

Então, a primeira coisa a fazer é limpar / home / $ USER /. Entre no modo de console.

cd ~
mkdir tmp

Isso criará um diretório tmp em seu / home / $ USER /.

Agora, faça um ls -l | more e pressione Enter para ter uma ideia sobre o nome desses arquivos; em geral, esses arquivos terão uma extensão específica. Vamos supor que todos eles terminem em *.ext (substitua o que você precisa no comando abaixo). Em seguida, mova todos os arquivos para ~/tmp/ com:

 echo !(*.ext) | xargs mv -t ~/tmp/

Cuidado com o que você digita em (*.ext) e certifique-se de incluir tudo o que deve permanecer em /home/$USER/ .

Isso gerará uma área de trabalho funcional e /home/ . Se você fizer um ls dentro de ~/tmp/ , ainda terá problemas.

2ª parte do problema. O método mais fácil seria ter um script colocando todos esses arquivos em subdiretórios: esta resposta em SO parece ser perfeita para isso.

    
por Rinzwind 07.05.2015 / 14:11