Есть ли ограничение на количество пунктов для файлового менеджера?
Это вопрос относительно 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 кажется идеальным для этого.