Каким образом можно удалить файл
В этой базовой инструкции подробно описано как удалить файл (папку) в Windows (несколько способов): от простого удаления до гарантированного удаления с защитой от программ восстановления данных.
Содержание
Удалить файл в «Корзину»
💡 Для выделения нескольких файлов или папок, удерживайте специальную кнопку и нажмите левую клавишу мыши:
- Сtrl — выделение определенного файла или папки;
- Shift — выделение диапазона файлов или папок.
Как удалить файл (папку) с помощью меню
Файл удалится в «Корзину».
Как удалить файл (папку) с помощью кнопки
- Выделите документ;
- Нажмите клавишу Del;
- Нажмите Да в запросе на подтверждение.
Файл удалится в «Корзину».
Отключить (включить) подтверждение удаления
💡 Если вы только что удалили нужный файл, нажмите комбинацию кнопок Ctrl + Z. Это отменит ваше последнее действие в Windows, удаленный файл или папка вернется на место.
Восстановить файлы из Корзины
Файл будет восстановлен в ту папку из которой он был удален.
Вы можете перенести файл (или папку) из корзины в нужную вам папку.
Нажмите и удерживайте левую клавишу мыши на выделенном файле и перетащите его в нужную вам папку или Рабочий стол.
Очистить корзину
Вы можете удалить все файлы из «Корзина»
Безвозвратное удаление
Гарантированное удаление файлов
Гарантированное удаление данных на активном диске
Для гарантированного удаления данных используем стандартную утилиту CIPHER.
Cipher.exe — это утилита командной строки, используется для управления зашифрованными данными с помощью шифрованной файловой системы (EFS).
Служба поддержки Майкрософт
💡 Чтобы лучше очистить том и затереть максимально возможное количество данных, при выполнении CIPHER /W рекомендуется закрыть все другие приложения.
- Запускаем командную строку от имени администратора;
- Запускаем команду CIPHER с нужными ключами.
/W — ключ, удаляет данные из доступного неиспользуемого дискового пространства во всем томе. Содержимое затирается в три этапа, значениями: 00, FF и случайное число.
:X — имя рабочего тома.
Гарантированное удаление данных на неактивных устройствах
Для гарантированного удаления данных на неактивных устройствах: неиспользуемые жесткие диски, переносные жесткие диски и флеш устройства, используем стандартную утилиту FORMAT.
- Запускаем командную строку от имени администратора;
- Запускаем команду format с нужными ключами.
X: — имя рабочего тома.
/p — ключ, обнуление каждого сектора тома. После обнуления том будет перезаписан Число раз; при каждой перезаписи будет использоваться новое случайное число.
Для успешного запуска утилиты требуется ввести правильное название активного тома/устройства.
Процесс может занять много времени, особенно если в счетчике перезаписи указано большое число.
Удаление через командную строку
Как удалить файл через командную строку
Если в имени файла находятся пробелы, заключите название в кавычки.
Для удаления файлов из системных папок требуется запустить командную строку от имени администратора.
Как удалить папку через командную строку
/S — ключ, позволяющий удалять не пустую папку.
Если в имени папки находятся пробелы, заключите название в кавычки.
Чтобы удалить папку из системных папок требуется запустить командную строку от имени администратора.
Удаление через PowerShell
Команда PowerShell для удаления папок и файлов — Remove-Item.
Синонимы команды Remove-Item: del, erase, rd, ri, rm и rmdir, поэтому команды из командной строки Windows так же будут работать.
X — полный путь до файла (с расширением) или папки.
Recurse — ключ, указывающий на удаление папки с содержимым.
Cравнительная таблица вариантов как удалить файл
Таблица сравнения способов удаления файлов и папок.
Удаление данных в «корзину» | Удаленные данные можно восстановить из папки «Корзина» на Рабочем столе. |
Безвозвратное удаление данных | Удаленные данные можно восстановить только с помощью специальных программ |
Гарантированное удаление данных | Удаленные данные нельзя восстановить даже специальными программами для восстановления данных. Но специальные службы и лаборатории по прежнему могут восстановить удаленные данные. |
Как удалить файл (папку) в Windows
Как удалить файл (папку) в Windows, обсуждалось в этой статье. Я надеюсь, что теперь вы сможете удалять файлы или папки разными способами, в том числе гарантированно удалять файлы без возможности восстановления специальными программами. Однако, если вы столкнетесь с каким-то проблемами, не стесняйтесь написать в комментариях. Я постараюсь помочь.
Хотите быть уверенным, что файлы, которые вы удалили на своём компьютере, исчезли навсегда? В этой статье мы покажем вам, как удалить файлы в Windows, чтобы не осталось следов.
Как навсегда удалить файлы из Windows
Чтобы окончательно удалить файлы в Windows, отправьте их в корзину, а затем очистите корзину, чтобы удалить навсегда. Когда корзина пуста, вы не сможете восстановить файлы, если у вас нет данных или программного обеспечения для восстановления файлов. И даже это может не сработать, потому что программное обеспечение для восстановления не даёт никаких гарантий.
Продолжайте читать, чтобы узнать о других способах навсегда избавиться от файлов Windows на вашем компьютере.
Используйте сочетания клавиш для удаления файлов
Вы можете пропустить корзину, выбрав файл и нажав Shift + Delete (удерживая нажатой клавишу Shift , а затем нажав клавишу Delete ).
Вот как безвозвратно удалить файлы в Windows, используя только сочетания клавиш:
- Нажмите на файл один раз, чтобы выделить его. Если файл сохранен прямо на рабочем столе, нажмите на него там. В противном случае найдите его и щелкните, чтобы выделить его в проводнике Windows.
- Удерживая клавишу Shift , нажмите клавишу Delete . (Помните, что клавиша BackSpace отличается от клавиши Delete.)
- Нажмите Да в появившемся окне.
Так просто вы можете удалять файлы в Windows, не используя корзину. Благодаря сочетаниям клавиш вам не нужно очищать корзину, чтобы избавиться от файлов – они уже удалены.
В некоторых случаях файлы, которые вы считаете безвозвратно удаленными, на самом деле всё ещё можно восстановить. Это связано с тем, что Windows не превращает пространство на диске, на котором хранился файл, в чистый лист. Вместо этого место на диске помечается как готовое к перезаписи. Оно может быть перезаписано чем-то, что вы делаете сразу после этого, но иногда оно подолгу остаётся не тронутым.
Используйте ленту проводника Windows 10 для удаления файлов
Вы можете удалять файлы в Windows 10 с помощью проводника, который представляет собой папку, в которой хранятся все ваши файлы.
Найдите файл, от которого вы хотите избавиться, затем используйте ленту проводника Windows, чтобы удалить его:
При нажатии кнопки «Удалить» файл отправляется в корзину, а при выборе параметра «Удалить окончательно» файл удаляется навсегда.
Используйте PowerShell для удаления файлов
Более продвинутые пользователи могут использовать PowerShell или командную строку Windows для безвозвратного удаления файлов.
Вот как использовать PowerShell для удаления файлов:
- Введите «powershell» в поисковую строку на панели задач.
- Нажмите Enter , если Windows PowerShell выделена, или выберите вариант Windows PowerShell.
Используйте программные средства для удаления файлов
Программное обеспечение для уничтожения файлов использует случайные данные для записи пространства на вашем диске, где раньше хранился файл. Затем, если кто-то попытается восстановить файлы или данные из этого пространства, он найдёт только случайные данные.
Несмотря на множество вариантов очистки, необходим только один проход по перезаписи. Но, если вы чего-то боитесь, программы уничтожения файлов могут много раз перезаписывать файлы случайными данными.
Использование инструментов для уничтожения данных – наиболее безопасный способ удаления файлов, поскольку последующее восстановление практически невозможно.
Используйте контекстное меню для удаления файлов
Другой способ удалить файл – щелкнуть его правой кнопкой мыши на рабочем столе, если он там хранится, или в проводнике.
Вот как удалить файл, щелкнув его правой кнопкой мыши:
- Перейдите в папку, в которой хранится файл.
- Щелкните файл правой кнопкой мыши и выберите Удалить.
Удаление файлов с помощью щелчка правой кнопкой мыши отправляет их прямо в корзину. Чтобы безвозвратно удалить все файлы из корзины, сверните все открытые окна, щелкните правой кнопкой мыши корзину на рабочем столе и выберите Очистить корзину.
Что происходит, когда вы удаляете файл
Очистки корзины вашего ПК недостаточно для безопасного удаления данных. Любой, у кого есть доступ к вашему жесткому диску, может восстановить файлы или другие данные из вашей корзины. Всякий раз, когда вы продаёте, одалживаете или передаёте свой компьютер кому-то для его ремонта, тщательно очищайте диск от личных файлов.
Чтобы понять, почему любой, у кого есть доступ к вашему жесткому диску, может восстановить данные из удалённых файлах, давайте посмотрим, что происходит внутри каждого типа диска при удалении файла.
Как происходит удаление файлов с диска HDD
Когда вы удаляете файл на жестком диске (HDD), Windows выделяет пространство, занимаемое этим файлом, и помечает его как готовое к перезаписи. Но до того, как это пространство будет перезаписано, данные всё ещё остаются там. Эти файлы могут сохраняться очень долго после удаления, даже если вы дефрагментировали свой компьютер.
Как происходит удаление файлов с диска SSD
Твердотельные накопители используют совершенно другую систему хранения файлов. Поскольку технология поддерживает ограниченное количество операций записи, твердотельные накопители распределяют данные по всему диску, постоянно консолидируя их для оптимального использования пространства.
На твердотельных накопителях данные постоянно перемещаются, что увеличивает шансы на сохранение частей файла. Последние твердотельные накопители оснащены функцией TRIM, которая перезаписывает удаленные данные, поэтому после удаления остается меньше данных.
Другой вариант для SSD – использовать безопасное стирание, которое, как следует из названия, безопасно удаляет все данные. Новая функция Secure Erase использует преимущества твердотельных накопителей с шифрованием. Ключ дешифрования удаляется вместо данных, что продлевает срок службы диска.
Может быть много ситуаций, когда Windows на даёт удалить определенный файл. Возможно, файл используется, у вас может не быть прав доступа к нему или проблема в самом файле. Какой бы ни была причина, видеть нежелательные файлы на вашем компьютере может быть очень неприятно.
Если у Вас возникли проблемы с файлом, который не удаётся удалить, позвольте мне протянуть вам руку помощи. В этом посте я расскажу о пяти решениях для удаления файла, который «невозможно удалить» в Windows. Просто выберите правильное решение в соответствии с вашей ситуацией.
Закройте связанную программу или процесс
Это быстрый и «грязный» способ решить проблему, но обычно он выполняет свою работу, если у вас достаточно информации. Windows часто отказывается удалять файл, если он в данный момент используется программой. Если есть программа, в которой всё ещё открыт файл, просто закройте программу и попробуйте удалить его снова.
Кроме того, есть вероятность, что в программе может быть скрытый процесс, который всё еще может использовать файл. Следовательно, даже если файл не открыт в программе, Windows все равно скажет, что программа использует файл.
Станьте владельцем файла
Если Windows выдает ошибку о том, что у вас нет прав на удаление файла, значит, это проблема владения. Обычно это происходит при обновлении Windows или при наличии нескольких учетных записей пользователей. К счастью, если вы являетесь администратором ПК, вы можете легко вернуть себе право собственности на любой файл, а затем удалить его.
Несмотря на то, что в Windows есть ручной способ вернуть право собственности, он немного сложен и подвержен ошибкам. Поэтому я лично использую и рекомендую стороннее приложение Take Ownership, которое может помочь вам вернуть право собственности одним щелчком мыши.
Загрузите и установите приложение, и оно создаст пункт контекстного меню с названием «Take Ownership». Затем просто щелкните правой кнопкой мыши файл, владельцем которого вы хотите стать, и выберите «Take Ownership» в контекстном меню. Вы сразу же станете владельцем и сможете удалить или изменить файл по своему усмотрению.
Используйте стороннее приложение
После того, как вы установите приложение, оно позволит вам разблокировать файлы и папки как через специальный интерфейс, так и через пункт контекстного меню. Вы можете перетащить файлы в интерфейс IObit Unlocker или щелкнуть файл правой кнопкой мыши и выбрать «IObit Unlocker» в контекстном меню.
После добавления файла вы можете использовать нормальный или принудительный режим для разблокировки файла. Принудительный режим остановит все связанные с файлом процессы. Также есть команда для прямой разблокировки и удаления файла прямо из интерфейса IObit Unlocker.
Перезагрузите компьютер
Если IObit Unlocker не смог сделать ваш файл доступным для удаления, это может быть ошибка файла или системы. В большинстве случаев для устранения таких проблем достаточно простой перезагрузки.
Перезагрузите компьютер и попробуйте удалить файл. Кроме того, вы можете снова попробовать использовать IObit Unlocker после перезагрузки, так как на этот раз он может сработать.
Загрузитесь в безопасном режиме
Если ничего не работает, значит, файл либо заражен вредоносным ПО, либо его использует сама система. В обоих случаях загрузка вашего ПК в безопасном режиме должна позволить вам удалить файл. В безопасном режиме загружается только минимум необходимых драйверов и системных файлов, а также блокируется большинство типов вредоносных программ.
Чтобы получить доступ к безопасному режиму в Windows 7, несколько раз нажмите клавишу F8 во время запуска ПК. В Windows 10 этот процесс немного отличается, поэтому мы также рекомендуем ознакомиться с инструкцией: как загрузить компьютер в безопасном режиме.
Загрузив компьютер в безопасном режиме удалите файл и вновь перезагрузите компьютер, чтобы вернуться в обычный режим.
Пользователи Microsoft Windows могут удалить файл или папку (каталог) разными способами. Ниже приведены наиболее распространенные способы удаления файла или папки.
Пользователи, не знакомые с Windows, должны понимать, что если вы удаляете папку, она удаляет все файлы и папки в этой папке.
Следующие шаги предназначены для удаления одного файла или папки. Однако те же шаги можно выполнить, чтобы удалить несколько файлов или папок, если выбрать более одного файла.
Удалить файл или папку
Найдите элемент, который вы хотите удалить, выделите его, нажав один раз на файл или папку, и нажмите клавишу удаления на клавиатуре. Вы можете найти местоположение файла или папки, используя Мой компьютер или Проводник Windows.
Вы можете удалить несколько файлов или папок, удерживая клавишу Ctrl и щелкая каждый из них перед нажатием «Удалить».
Вы можете удерживать клавишу Shift, одновременно нажимая клавишу удаления, чтобы предотвратить удаление удаляемых файлов в корзину.
Удалить файл или папку, щелкнув правой кнопкой мыши
Откройте Мой компьютер или Проводник Windows. Найдите файл или папку, которую вы хотите удалить, и щелкните по ней правой кнопкой мыши. Выберите опцию удаления из всплывающего меню.
Удалить из меню файла
Откройте Мой компьютер или Проводник Windows, найдите и выберите файл или папку, которую вы хотите удалить, нажмите файл в верхней строке меню и выберите удалять,
Если файл меню не отображается в «Моем компьютере» или в проводнике Windows, нажмите клавишу «Alt», чтобы отобразить строку меню, включая меню «Файл».
Проблемы при удалении
Некоторые файлы и папки могут быть защищены от удаления с помощью шифрования или парольной защиты. В этом случае вас могут попросить ввести пароль для расшифровки или снятия защиты паролем.
Некоторые файлы могут быть удалены только с правами администратора. Чтобы удалить эти файлы, вам понадобятся права администратора на компьютере. Если вы используете рабочий компьютер, сотрудники службы технической поддержки часто являются единственными пользователями с правами администратора на компьютере.
Другой возможной причиной проблем с удалением файла или папки является вирус или заражение вредоносным ПО. Вирусы и вредоносные программы могут препятствовать изменению или удалению файлов или папок. Если это так, вам нужно удалить вирус или вредоносное ПО, чтобы иметь возможность удалить затронутый файл или папку.
Как восстановить удаленный файл или папку
Если вы удалили файл по ошибке, вы можете ознакомиться с нашими шагами о том, как восстановить страницу удаленного файла, для получения дополнительной информации о восстановлении удаленного файла.
Как удалить файлы в MS-DOS и командной строке Windows
Помните, что любой удаленный файл или каталог в MS-DOS не отправляется в корзину Windows.
Прежде чем можно будет выполнить любой из следующих шагов, вы должны получить приглашение MS-DOS или командную строку Windows.
Файлы
Пользователи MS-DOS могут удалять файлы с помощью команды del. Ниже приведен пример использования этой команды.
Как видно из приведенного выше примера, при удалении файла вам необходимо ввести полное имя файла, включая расширение файла.
Del: Команда может быть использована для удаления любого файла.
Удалить несколько файлов
Вы также можете использовать подстановочные знаки, если хотите удалить несколько файлов, как показано в примере ниже.
В приведенном выше примере эта команда удалит все файлы с расширением .txt.
Del: Команда может быть использована для удаления любого расширения файла.
Каталог
Пользователи MS-DOS могут удалять каталоги в MS-DOS с помощью команды deltree или rmdir. Смотрите любую из этих ссылок для получения дополнительной информации об этих командах. Ниже приведен пример того, как это можно использовать.
Удаление подкаталога
Если вы хотите удалить каталог внутри другого каталога (подкаталога), вы можете использовать команду, аналогичную приведенной ниже.
В приведенном выше примере каталог «test» в каталоге «example» будет удален. Вы также можете использовать команду cd, чтобы изменить каталог на каталог с примером, а затем удалить каталог «test», используя наш первый пример, показанный выше.
Как удалить каталог или имя файла с пробелом
Чтобы удалить каталог или имя файла с пробелом в имени, необходимо заключить имя каталога или файла в кавычки, как показано ниже.
В приведенных выше примерах мы удаляем файл с именем «my example file.txt» с кавычками, окружающими полное имя и расширение файла, и удаляем каталог «my example directory».
RmDir Команда может быть использована для удаления любого файла.
Как удалить файлы в Linux, Unix и других вариантах
Файлы
Пользователи Linux и Unix могут удалять файлы через консоль с помощью команды rm. Смотрите эту страницу для получения дополнительной информации об этой команде. Ниже приведен пример использования этой команды.
Как видно из приведенного выше примера, при удалении файла вам необходимо ввести полное имя файла, включая расширение файла.
rm: Команда может быть использована для удаления любого файла.
Удалить несколько файлов
Вы также можете использовать подстановочные знаки, если хотите удалить несколько файлов, как показано в примере ниже.
В приведенном выше примере эта команда удалит все файлы с расширением .txt.
rm: Команда может быть использована для удаления любого файла с расширениями файлов.
Каталог
Пользователи Linux и Unix могут удалять папки через консоль с помощью команды rmdir. Смотрите эту страницу для получения дополнительной информации об этой команде. Ниже приведен пример использования этой команды.
Как и в Microsoft Windows, в Linux и Unix вы также можете удалять файлы через графический интерфейс, находя файл и нажимая клавишу удаления на клавиатуре.
Удаление подкаталога
Если вы хотите удалить каталог внутри другого каталога (подкаталога), вы можете использовать команду, аналогичную приведенной ниже.
В приведенном выше примере каталог «test» в каталоге «example» будет удален. Вы также можете использовать команду cd, чтобы изменить каталог на каталог с примером, а затем удалить каталог «test», используя наш первый пример, показанный выше.
Как удалить каталог или имя файла с пробелом
Чтобы удалить каталог или имя файла с пробелом в имени, необходимо заключить имя каталога или файла в кавычки, как показано ниже.
В приведенных выше примерах мы удаляем файл с именем «my example file.txt» с кавычками, окружающими полное имя и расширение файла, и удаляем каталог «my example directory».
RmDir Команда может быть использована для удаления любого файла.
Как удалить файлы в macOS
Пользователи Apple macOS могут удалить файл или папку (каталог) разными способами. Ниже приведены наиболее распространенные способы удаления файла или папки.
Пользователи, не знакомые с Apple macOS, должны понимать, что если вы удаляете папку, она удаляет все файлы и папки в этой папке.
Следующие шаги предназначены для удаления одного файла или папки. Однако те же шаги можно применить для удаления нескольких файлов или папок, если сначала выбрать несколько из них.
Удалить элемент
Клавиша удаления на клавиатуре сама по себе не удаляет файл или папку в macOS. Чтобы удалить файл или папку, удерживайте нажатой клавишу «Command» и одновременно нажмите клавишу «Delete». Вы можете просмотреть местоположение файла или папки с помощью Finder.
Щелкните правой кнопкой мыши и выберите «Переместить в корзину».
Откройте Finder и найдите файл или папку, которую хотите удалить, и щелкните правой кнопкой мыши файл. В появившемся меню правой кнопкой мыши щелкните Переместить в корзину вариант.
Удалить из меню файла
Откройте Finder, найдите и выберите файл или папку, которую вы хотите удалить, нажмите файл в верхней строке меню и выберите Переместить в корзину,
Терминал
Чтобы удалить файлы или каталоги в командной строке терминала, используйте команду rm.
Как удалить файлы в Microsoft Windows 3.X
Файловый менеджер
- Открыть файловый менеджер
- Найдите папку или файл, который вы хотите удалить, затем нажмите файл и удалять,
MS-DOS
См. Выше раздел пользователя MS-DOS для получения информации об удалении каталога в MS-DOS.
Феерическая расстановка точек над i в вопросе удаления файлов из переполненной директории.
Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.
Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии — т.е. от 5 млн файлов, лежащих в одной единственной плоской директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе — либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.
Так что я выделил время, организовал тестовый полигон и попробовал различные средства, как предложенные в комментариях, так и найденные в различных статьях и свои собственные.
Подготовка
Так как создавать переполненную директорию на своём HDD рабочего компьютера, потом мучиться с её удалением ну никак не хочется, создадим виртуальную ФС в отдельном файле и примонтируем её через loop-устройство. К счастью, в Linux с этим всё просто.
Создаём пустой файл размером 200Гб
Многие советуют использовать для этого утилиту dd, например dd if=/dev/zero of=disk-image bs=1M count=1M , но это работает несравнимо медленнее, а результат, как я понимаю, одинаковый.
Форматируем файл в ext4 и монтируем его как файловую систему
К сожалению, я узнал об опции -N команды mkfs.ext4 уже после экспериментов. Она позволяет увеличить лимит на количество inode на FS, не увеличивая размер файла образа. Но, с другой стороны, стандартные настройки — ближе к реальным условиям.
Создаем множество пустых файлов (будет работать несколько часов)
Кстати, если в начале файлы создавались достаточно быстро, то последующие добавлялись всё медленнее и медленнее, появлялись рандомные паузы, росло использование памяти ядром. Так что хранение большого числа файлов в плоской директории само по себе плохая идея.
Проверяем, что все айноды на ФС исчерпаны.
Размер файла директории ~360Мб
Теперь попробуем удалить эту директорию со всем её содержимым различными способами.
Тесты
После каждого теста сбрасываем кеш файловой системы
sudo sh -c 'sync && echo 1 > /proc/sys/vm/drop_caches'
для того чтобы не занять быстро всю память и сравнивать скорость удаления в одинаковых условиях.
Удаление через rm -r
$ rm -r /mnt/test_dir/
Под strace несколько раз подряд (. ) вызывает getdents() , затем очень много вызывает unlinkat() и так в цикле. Занял 30Мб RAM, не растет.
Удаляет содержимое успешно.
Т.е. удалять переполненные директории с помощью rm -r /путь/до/директории вполне нормально.
Удаление через rm ./*
$ rm /mnt/test_dir/*
Запускает дочерний процесс шелла, который дорос до 600Мб, прибил по ^C . Ничего не удалил.
Очевидно, что glob по звёздочке обрабатывается самим шеллом, накапливается в памяти и передается команде rm после того как считается директория целиком.
Удаление через find -exec
$ find /mnt/test_dir/ -type f -exec rm -v <> \;
Под strace вызывает только getdents() . процесс find вырос до 600Мб, прибил по ^C . Ничего не удалил.
find действует так же, как и * в шелле — сперва строит полный список в памяти.
Удаление через find -delete
$ find /mnt/test_dir/ -type f -delete
Вырос до 600Мб, прибил по ^C . Ничего не удалил.
Аналогично предыдущей команде. И это крайне удивительно! На эту команду я возлагал надежду изначально.
Удаление через ls -f и xargs
$ cd /mnt/test_dir/ ; ls -f . | xargs -n 100 rm
параметр -f говорит, что не нужно сортировать список файлов.
Создает такую иерархию процессов:
Удаление через perl readdir
$ perl -e 'chdir "/mnt/test_dir/" or die; opendir D, "."; while ($n = readdir D) < unlink $n >' (взял здесь)
Под strace один раз вызывает getdents() , потом много раз unlink() и так в цикле. Занял 380Кб памяти, не растет.
Удаляет успешно.
Получается, что использование readdir вполне возможно?
Удаление через программу на C readdir + unlink
$ gcc -o cleandir cleandir.c
$ ./cleandir
Под strace один раз вызывает getdents() , потом много раз unlink() и так в цикле. Занял 128Кб памяти, не растет.
Удаляет успешно.
Опять — же, убеждаемся, что использовать readdir — вполне нормально, если не накапливать результаты в памяти, а удалять файлы сразу.
Читайте также: