11

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

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

3 ответа3

18

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

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

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

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

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

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

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

0

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .