Существует ли ограничение на количество элементов в файловом менеджере?

Существует ли ограничение на количество элементов в файловом менеджере?

Это вопрос по Xubuntu 14.04.

Короче говоря, мне пришлось использовать программу recoveryjpeg, чтобы восстановить некоторые фотографии, которые я забыл сделать после новой установки. Это привело к тому, что 850 тыс. файлов были помещены в мою домашнюю папку, и теперь она не загружается. Когда я захожу в home/[имя пользователя], она просто крутится, даже после перезагрузки, и просто говорит «загрузка содержимого папки». Прошло несколько часов. Мне просто подождать или есть другое приложение для папок, которое я могу загрузить, чтобы сделать эти файлы доступными? Это очень важные файлы изображений, поэтому я не могу рисковать их потерей. Это также означает, что я не могу ничего загрузить в домашнюю папку (Документы, загрузки и т. д.) в графическом интерфейсе ИЛИ терминале.

Любые советы приветствуются. Не знаю, что делать на данный момент. Файлы не мои, и если я не смогу их восстановить, я могу умереть. Спасибо.

решение1

Самым простым решением будет переместить файлы в другой каталог. Таким образом, по крайней мере, ваш $HOMEбудет загружаться. Откройте терминал и выполните эти команды:

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

Это переместит все файлы, имена которых заканчиваются на jpg, jpeg, JPEG, JPGи т. д., в ~/jpeg-dir. Это должно позволить вам нормально загрузить ваш домашний каталог.

Однако это означает, что теперь у вас будут проблемы с просмотром каталога jpeg-dir. Итак, теперь, когда у вас есть все в ~/jpeg-dir, вы можете создать подкаталоги, каждый из которых содержит, например, 5000 файлов:

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

решение2

Происходит следующее: файловый менеджер создает список (с помощью ls), и это займет очень много времени, если файлов много.

Итак, первое, что нужно сделать, это очистить /home/$USER/. Перейдите в консольный режим.

cd ~
mkdir tmp

Это создаст tmpкаталог в вашем /home/$USER/.

Теперь сделайте ls -l | moreи нажмите Enter, чтобы получить представление о том, как называются эти файлы; в общем случае эти файлы будут иметь определенное расширение. Предположим, что все они заканчиваются на *.ext(замените на то, что вам нужно в команде ниже). Затем переместите все эти файлы на ~/tmp/с помощью:

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

Будьте внимательны при вводе текста (*.ext)и убедитесь, что он включает в себя все, что должно остаться в /home/$USER/.

Это даст вам работающий рабочий стол и /home/. Если вы сделаете это lsизнутри, ~/tmp/вы все равно столкнетесь с проблемами.


2-я часть проблемы. Самый простой способ — это скрипт, который разместит все эти файлы в подкаталогах:этотответ на SO, кажется, идеально подходит для этого.

Связанный контент