Видалення файлів, змінених за останніх 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.