Как удалить бесконечно повторяющееся дерево каталогов?

На одном из наших файловых серверов Windows 2003 кому-то или чему-то удалось создать бесконечно повторяющиеся деревья каталогов в некоторых домашних папках пользователей, и их нельзя удалить.

Вы завершаете что-то вроде этого:

  • Есть инструмент, который улучшает диалог открытия / сохранения окон, чтобы добавить комментарии (файл descript.ion)
  • Windows - прокрутка с четырьмя пальцами для пространств (простыни)
  • Как создать «Отправить на« FOLDER »« похожее на отправку на рабочий стол ярлыка?
  • Как сделать одно окно на Mac OS X липким для каждого рабочего пространства?
  • Ярлык клавиатуры для переключения на фоновый рисунок рабочего стола
  • Как избавиться от раздражающих и быстро исчезающих всплывающих окон брандмауэров на Mac
  • D:\Student\2012\user.name\servername\student\2012\user.name\servername\student\2012\... 

    И это продолжается бесконечно, насколько я мог сказать.

    Пытаясь удалить дерево каталогов из системы, оно находится в результатах: «Ошибка удаления файла или папки: невозможно удалить файл:». Попытка удалить его из системы Windows 7, подключенной к общему сетевому ресурсу, приводит к ошибке «папка в использовании».

    Если вы перемещаетесь вниз по дереву каталогов до тех пор, пока вы идете, вы в конечном итоге достигаете директории, которая не может быть открыта или удалена (если щелкнуть правой кнопкой мыши ни один из стандартных параметров), однако, если вы попытаетесь открыть тот же каталог из общего ресурса в другой системе Он может быть открыт, однако Windows Explorer становится очень медленным.

    Я пробовал предложения в этом сообщении, а также загружал сервер с диском Linux и пытался запустить rm -rf в каталог, но не работал.

    Это тайна.

    Изменить: я также могу добавить, что можно переименовать каталоги, просто не удаляйте их.

  • Какую версию Windows у меня есть?
  • Инструмент для копирования текста из диалоговых окон?
  • Можно ли запускать окна с блокировкой NUM?
  • Как проверить температуру моего процессора в Windows?
  • Создать / переименовать файл / папку, начинающуюся с точки в Windows?
  • Копирование установки Windows на другой HD
  • 9 Solutions collect form web for “Как удалить бесконечно повторяющееся дерево каталогов?”

    У меня также была бесконечно рекурсивная папка, созданная с помощью java IDE, и я не смог ее удалить в проводнике Windows или в командной строке cmd.

    Однако, когда я установил git, я также установил git-bash. В git-bash вы можете выполнить команду:

     rm -rfd recursive_folder_name 

    И он позаботится об этом.

    Вполне возможно, что есть Символическая ссылка на папку где-то, скорее всего, второго student на вашем пути.

    Попробуйте выполнить команду:

     dir D:\Student\2012\user.name\servername 

    И посмотрите, отмечен ли student как DIR или SYMLINK / JUNCTION.

    Например, это типичный вывод команды dir :

     04/24/2012 10:58 PM <DIR> . 04/24/2012 10:58 PM <DIR> .. 04/24/2012 10:58 PM <SYMLINKD> a [h:\a] 

    Вы видите, что первые две записи отмечены как DIR , а третья (символическая ссылка на другую папку) отмечена как SYMLINKD . В вашем случае (Windows 2003) я думаю, что вместо SYMLINK s.

    Если папка student является символической ссылкой или соединением, выполните команды:

     cd /d D:\Student\2012\user.name\servername rmdir student 

    И таким образом избавиться от рекурсии.

    Возможно, что кто-то работал в этой папке, удалось создать точку соединения, которая создает резервную копию с user.name на servername , создавая таким образом дерево каталогов «бесконечный цикл».

    Переходы – это функция файловой системы NTFS, которая позволяет создавать символическую ссылку на каталог, который работает как псевдоним в каталоге. http://en.wikipedia.org/wiki/NTFS_junction_point

    Вы можете увидеть в разделе «Наблюдаемые эффекты» на странице вики проблему, которую вы описываете.

    Попробуйте запустить эту утилиту, чтобы перечислить соединения этого сервера:

    http://technet.microsoft.com/en-us/sysinternals/bb896768

    Он также должен дать вам возможность удалить точку соединения.

    У меня была аналогичная проблема, когда eclipse создал массивное дерево папок, которое я не смог удалить. Однако, поскольку можно было перемещать и переименовывать папки, я написал командный файл, чтобы работать, это путь вниз по дереву, удаляющему папки по одному в то время, и это сработало! Для явно бесконечно глубокого дерева папок FOLDERNAME в каталоге C, т.е.

     C:/*FOLDERNAME*/*FOLDERNAME*/*FOLDERNAME*/*FOLDERNAME*/*FOLDERNAME*/*FOLDERNAME*/... 

    Пакетный файл:

     :LoopStart REN "C:/*FOLDERNAME*" "*TEMPFOLDERNAME*" MOVE "C:/*TEMPFOLDERNAME*/*FOLDERNAME*" "C:/" RMDIR /S /Q "C:/*TEMPFOLDERNAME*" GOTO LoopStart :LoopEnd 

    Это работает, потому что TEMPFOLDERNAME теперь является деревом конечной длины (единственная папка, в которой нет ничего), и массивное дерево FOLDERNAME имеет одну меньшую папку при каждом запуске цикла, в конечном итоге достигая дна, удаляя папку вверху.

    Я столкнулся с той же проблемой с более чем 500-кратным папок в папке, который использовался некоторым Java-приложением, и я написал следующее:

    https://gitlab.imanolbarba.net/imanol/DiREKT

    Он удалил все это через некоторое время, но ему удалось выполнить эту работу, я надеюсь, что это помогает людям, которые (как я), сталкиваются с тем же расстраивающим вопросом

    Решила мои бесконечные петлевые каталоги с помощью этого скрипта:

     :LoopStart takeown /F "c:\temp\Application Data" Attrib -S -H "c:\temp\Application Data" REN "C:\temp\Application Data" "5" takeown /F "c:\temp\5\Application Data" Attrib -S -H "c:\temp\5\Application Data" MOVE "c:\temp\5\Application Data" "C:\temp" Del /F /S /Q c:\temp\5\*.* RMDIR /S /Q "C:\temp\5" GOTO LoopStart :LoopEnd 

    У меня такая же проблема. В папке, которую я хотел удалить, содержалось бесконечное дерево ссылок с тем же именем, и каждая попытка удалить его заставляла Windows бросать ошибку «Файл слишком длинный …». Он провалился независимо от команды, которую я пробовал, включая все вышеперечисленные методы, поэтому я пробовал команду «rm» Cygwin в CMD-окне чуть выше указанной папки. Я ввел «rm -r -f [папка]», и папка была удалена без жалобы.

    Вы можете скачать Cygwin бесплатно с https://cygwin.com/install.html . В основном это оболочка UNIX для Windows, которая содержит все общие команды (например, ls, rm, du и cat), но также имеет массу пакетов, которые, если бы все были загружены, занимали около 1 ГБ пространства. Я считаю, что пакет загрузки по умолчанию включает команды UNIX. Если нет, они находятся в пакете «utils», если память служит.

    ПРИМЕЧАНИЕ. Вам не нужно запускать команды Cygwin в своем окне оболочки bash. Их можно запустить в окне cmd, добавив путь к каталогу bin в cygwin в свою переменную окружения PATH. В моем случае я добавил «C: \ cygwin64 \ bin».

    Надеюсь, это поможет.

    У меня такая же проблема.

    В других сообщениях было предложено отразить пустую папку для целевой папки через общий сетевой ресурс с помощью MS RoboCopy.

    В настоящий момент я запускаю это, используя «> nul» для ускорения (это действительно так):

    «C: \ TEMP» – это пустая папка, а «W: \ TMP» – уязвимая папка:

    Robocopy / mir c: \ temp \ 127.0.0.1 \ w $ \ tmp> nul

    У меня тоже было это, на автономной системе Windows 10. C: \ User \ Name \ Repeat \ Repeat \ Repeat \ Repeat \ Repeat \ Repeat \ Repeat, казалось бы, бесконечности.

    В соответствии с OP я мог бы перемещаться с помощью Windows или командной строки примерно до 50-го, а не дальше. Я не мог удалить его или щелкнуть по нему и т. Д. Точно так, как описано.

    C – мой язык, поэтому в конце концов я написал программу с циклом системных вызовов, которые повторяются до тех пор, пока они не сработают. В соответствии с кодом DOS от JohnO я создал каталог с именем tmp и переместил Repeat \ Repeat на это, удалил теперь пустую папку Repeat и переместил tmp \ Repeat обратно в текущую папку. Снова и снова!

      while (times<2000) { ChkSystem("move Repeat\\Repeat tmp"); ChkSystem("rd Repeat"); ChkSystem("move tmp\\Repeat Repeat"); ++times; printf("Removed %d nested so far.\n", times); } 

    ChkSystem запускает вызов system () и проверяет возвращаемое значение, останавливаясь, если оно не выполнено.

    Важно отметить, что он не удался несколько раз. Я думал, что, возможно, моя программа не работает, или что она бесконечно длинная. Тем не менее, у меня было это раньше с системными вызовами, с вещами, которые не синхронизируются, поэтому я просто запускал программу еще раз, и она продолжалась с того места, где она была остановлена, поэтому не думайте, что ваша программа не работает. Всего, после запуска около 20 раз, он очистил их все. Всего изначально было около 1280 папок. Не знаю, что вызвало это. Псих.

    Давайте будем гением компьютера.