Как удалить все файлы, которые были созданы n минут назад в Linux

13

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

Итак, что я хочу узнать от вас, что - как я могу переместить эти недавно созданные файлы? Я знаю, что там должен быть какой-то причудливый подход "найди плюс", но я не знаю точно, как.

ХайЮань Чжан
источник

Ответы:

23

Интересно, что man findбы сказать. Тогда вы можете даже показать свои усилия.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • -type fИспользуется для указания только выбраны обычные файлы.
  • -cmin -1Статус файла была произведена менее чем в прошлом (одну) минуту.
  • -deleteФлаг указывает найти в удалений все электронные файлы в известной вселенной или что - то в этом роде, поэтому будьте осторожны при ее использовании.

Во- первых делать пробный запуск без с -deleteфлагом настоятельно рекомендуется.

Примечание -delete- это непереносимое расширение.

Я рекомендую прочитать findman-страницу перед ее использованием, поскольку она охватывает различные ошибки и предупреждения, которые могут применяться в вашей ситуации.

mctylr
источник
Ницца! -delete выглядит проще, чем -exec rm {} \;
Пи Джей Брюнет
+1 за то, что
Jad S
5
find . -mtime -60s -exec mv {} /dest/dir \;

Находит все файлы в текущем каталоге (и подкаталогах), которые были изменены за последние 60 секунд, и перемещает их в / dest / dir.

Skarface
источник
3
Тщательно извлеченные архивные файлы могут сохранить первоначальную дату модификации. Лучше всего использовать время создания.
Джем Калионку
@CemKalyoncu замечательный момент.
skarface
0

Простой способ (при условии, что у вас нет графического интерфейса) будет использовать mc . Может сортировать файлы по дате.

Вы также можете удалить файлы, которые были в tar из командной строки:

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

(-ztf) для файлов tar.gz. Вы можете использовать (-tf) для обычных файлов или (-jtf) для файлов tar.bz2.

Если список файлов слишком большой, и приведенная выше команда захлебывается, вы можете использовать xargs:

> tar -ztf mytar.tar.gz | xargs rm
Солнечный
источник
вау, мой плохой - я действительно не читал вопрос - нужно их перемещать, а не удалять (пожалуйста, исправьте заголовок, его вводят в заблуждение). Я думаю, вы все еще можете удалить их, затем создать новый каталог и разархивировать там :). В конце концов, двигаться = копировать + удалить.
Солнечно