Иногда я извлекаю архив в неправильную папку и хотел бы переместить или удалить недавно извлеченные файлы.
Что самый легкий путь состоит в том, чтобы сделать это через командную строку? Я могу так или иначе искать все файлы, которые являются более новыми, чем время извлечения и канал это в комнату?
Спасибо
Править: Как отмечено в комментариях, tar
изменяет mtime и ctime извлеченных файлов для соответствия датам в архиве, таким образом, этот первый метод не будет работать если -m
флаг использовался во время извлечения. Последний метод оптимален, но может привести к удалению файлов, которые Вы хотите, если имена файлов сталкиваются.
find
поддержки a -newer
file
флаг, указывая его должен найти файлы более новыми, чем файл. touch
имеет-t аргумент для изменения получить доступ/изменить времени на файле. Таким образом для фиксации ООП, которые произошли около 19:25:30:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
И если Вы уверены, что отобразил корректные файлы:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
Альтернатива должна удалить все файлы, перечисленные в архиве, который Вы просто извлекли:
$ tar tfz whoops.tar.gz | xargs rm -v
tar
сохранит даты из архивов, если Вы не используете-m
флаг. Так, первый метод не будет работать как правило. Синхронизация – Annika Backstrom 27.09.2009, 16:58