Ты почти прав. -mtime 365
будут все файлы, которым ровно 365 дней. Вы хотите те, которые 365 дней или более, что означает добавление +
перед номером, как это -mtime +365
.
Возможно, вас также заинтересует -maxdepth 1
флаг, который не позволяет вам перемещать элементы в подкаталогах.
Если вы хотите быть уверены, что перемещаете только файлы, а не каталоги, добавьте -type f
в строку.
В конце строки мы добавляем, \;
чтобы find
знать, что это конец команды, которую мы выполняем.
Итак, строка должна быть:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \;
Чтобы быть в безопасности, начните с простого выполнения команды ls -l вместо mv. Таким образом, вы можете заранее проверить, что получаете именно те файлы, которые вам нужны, прежде чем перезапускать его с помощью mv, например так:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \;
Дженни Ди говорит восстановить Монику
источник
mtime
это время Модификации (которое звучит примерно так, как вы, вероятно, хотите - большую часть времени это происходит). Если эти журналы часто читаются / используются, возможно, вы захотите их использовать-atime
(время последнего доступа).exec
утверждения. Смотрите справочную страницу дляfind
.Будьте осторожны при использовании вышеуказанных решений, я использовал их и в итоге переместил все файлы во все подпапки !!!!
Эта команда перемещает все файлы в / source каталоге и все подпапки в исходном каталоге:
Вместо этого используйте опцию -maxdepth 1 только для файлов в / sourcedirectory
источник
-type f
. Вы имели в виду это вместо этого, чтобы означать, что подпапки действительно перемещаются, но их содержимое остается в подпапках вместо того, чтобы быть удаленным из них или ...?Вы можете использовать эту команду и указать, что вы найдете только для файлов, а не для каталога, и файл старше одного года
источник
rm
? Ваша команда удаляет как файлы журнала, так и, возможно, каталог назначения.Вы можете использовать приведенную ниже команду с atime, если к файлам часто обращаются
источник
Правильно будет удалить окончание косой черты из
/sourcedirectory/
источник
find: missing argument
ошибку, однако я согласен с тем, что удаление косой черты с/sourcedirectory
верным.