Есть ли ограничение на количество пунктов для файлового менеджера?

Это вопрос относительно Xubuntu 14.04.

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

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

2 ответа

Самое простое решение - переместить файлы в другой каталог. Таким образом, по крайней мере, ваш $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

Происходит то, что файловый менеджер создает список (с 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 кажется идеальным для этого.

Другие вопросы по тегам