Як видалити всі файли, створені n хвилин тому в Linux


15

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

Тож, що я хочу дізнатися у вас, це те, як я можу перемістити ті новостворені файли? Я знаю, що це має бути якийсь фантазійний підхід «знайти плюс rm», але я не знаю, як саме.

Відповіді:


25

Цікаво, що man findб сказати. Тоді ви навіть можете проявити свої зусилля.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • Вибір -type fвикористовується для визначення лише звичайних файлів.
  • Статус -cmin -1файлу востаннє змінено менше, ніж за минулу (одну) хвилину.
  • -deleteПрапор вказує знайти в вилучень все електронні файли в відомої всесвіту або що - то в цьому роді, тому будьте обережні при її використанні.

По- перше робити пробний запуск без з -deleteпрапором настійно рекомендується.

Примітка -delete- це портативне розширення.

Рекомендую прочитати сторінку, findперш ніж використовувати її, оскільки вона охоплює різні проблеми та попередження, які можуть застосовуватися у вашій ситуації.


Приємно! -delete виглядає легше, ніж -exec rm {} \;
PJ Brunet

+1 за те, що знайшли час для пояснення варіантів вибору
Jad S

5
find . -mtime -60s -exec mv {} /dest/dir \;

Знаходить кожен файл у поточному каталозі (та підкаталогах), який був змінений за останні 60 секунд, і переміщує їх до / dest / dir.


3
Обережні, вилучені файли архівів можуть зберігати оригінальну дату зміни. Найкраще використовувати час створення.
Джем Кальонку

@CemKalyoncu чудовий момент.
skarface

0

Легшим способом (за умови, що у вас немає графічного інтерфейсу) буде використання mc . Він може сортувати файли за датою.

Ви також можете видалити файли, які знаходились у тарі, з командного рядка:

> rm $( tar -ztf mytar.tar.gz )

(-ztf) призначений для файлів tar.gz. Ви можете використовувати (-tf) для звичайних файлів tars, або (-jtf) для файлів tar.bz2.

Якщо список файлів занадто великий, і вищезазначена команда задавлюється, ви можете використовувати xargs:

> tar -ztf mytar.tar.gz | xargs rm

вау, моє погано - я питання не читав насправді - вам потрібно їх перемістити, а не видалити (pls, виправити заголовок, його введення в оману). Я думаю, ви все-таки можете їх видалити, потім створити новий редактор і там untar :). Зрештою, перемістити = скопіювати + видалити.
Сонячний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.