Видалення файлів, змінених за останніх n годин, з папки


1

У мене є папка, де я іноді отримую кілька великих файлів після виконання певної роботи. Я видаляю їх вручну. Я знаю, що можна видалити їх через 1 день або більше, але я хотів би видалити їх, якщо вони були змінені за останні кілька годин.

У папці є файли, які я не хочу видаляти, і всі вони мають подібні, але непередбачувані назви файлів. Я не можу просто використовувати del для видалення новітніх, я повинен покладатися на зміну дати.

Відповіді:


1
find /some/dir -type f -mmin -<minutes old> -print0 | xargs -0 rm

Тут знаходяться всі елементи, вказані в розділі /some/dir це файли і менше <minutes old> хвилин, і видаляє їх. Не забувайте - до кількості хвилин. Крім того, якщо mmin не спрацює, спробуйте cmin.


Якщо ви збираєтеся вважати, що GNU знаходить, це можна спростити find /some/dir -type f -mmin -<minutes old> -delete. Запустіть його спочатку без -delete параметр, щоб показати, що він буде видаляти. З POSIX find, find /some/dir -type f -mmin -<minutes old> -exec rm {} +. Але для цього потрібні утиліти Unix, які не входять до комплекту Windows.
Gilles

Дох. Чи додав тег 'windows 7' після того, як я відповів? Я не бачив його, якщо ні. Я не знав про вилучення. Щоб бути відвертим, я не прихильник аргументів -delete і -exec для пошуку; вони виглядають як віруси, а втікання, яке завжди вимагало -exec, образило мої делікатні почуття. Проте додаткові знання хороші; Дякую.
Slartibartfast

@slartibartfast: Я додав тег Windows, тому що в тілі питання згадуються Windows. -exec є POSIX, тоді як -print0 не. (Розум, -mmin не є також POSIX, тому моє заперечення не було виправданим.) Втікання find вихід для xargs важко, якщо у вас немає -print0; мені подобається -exec ... + набагато краще, і це не вимагає ніякого втечі.
Gilles

Особисті уподобання. Я просто вважаю, що знайти + xargs є більш unix-y (у філософському сенсі, а не POSIX / non-POSIX). Я також рекомендую grep -Z і, можливо, tar - null. (Зауважте також, що xargs може здійснювати контрольований паралелізм з -P)
Slartibartfast

0

IIRC Провідник Windows може сортувати за часом модифікації, так що ви можете зробити це і вибрати файли, які були змінені в потрібному діапазоні часу.

slartibartfast дав відповідь на те, що у вас є утиліти, подібні до Unix. У Windows це може бути cygwin або Утиліти GNU Win32 або SFU для Windows або UWIN . Якщо ви встановите один з них, переконайтеся, що використовуєте його find а не пов'язані з нею рідні команди Windows.


Спочатку я хотів би отримати цю роботу без установки будь-якого додаткового програмного забезпечення і після того, як я впевнений, що я не можу бути зроблено, я спробую деякі з згаданих утиліт. Ви сказали: "IIRC Windows Explorer може сортувати за часом модифікації, так що ви можете зробити це і вибрати файли, які були змінені в потрібний часовий діапазон." Як це зробити?
TMRW

@TMRW: Відкрийте каталог у Провіднику. Виберіть "Деталі" в меню "Дисплей" (назва може відрізнятися у вашій версії Windows). Потім натисніть на заголовок стовпця дати та часу, щоб відсортувати за датою та часом.
Gilles

Так, це ручний way.I шукаю автоматизований спосіб через CMD.
TMRW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.