Это вопрос по 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, кажется, идеально подходит для этого.