Как копировать рекурсивно все файлы не старше 1 дня?

Как копировать рекурсивно все файлы не старше 1 дня?

Я сначала попробовал

find . -amin -1440 | xargs cp /dest 

Но это не работает, потому что элементы, заданные для xargs должны быть позиционированы перед аргументом /dest .

Вы можете использовать опцию -t для GNU cp :

  -t, --target-directory=DIRECTORY copy all SOURCE arguments into DIRECTORY 

Вы также должны использовать find -print0 и xargs -0 противном случае, это приведет к сбою имен файлов с пробелами или другими странными символами:

 find . -amin -1440 -print0 | xargs -O cp -t /dest 

Лучшим подходом может быть использование самой find и вообще избегание xargs :

 find . -amin -1440 -exec cp -t /dest {} + 

Наконец, поскольку вы упомянули «файлы», вы можете пропустить каталоги, символические ссылки и другие странные звери и сказать, что find только обычные файлы:

 find . -type f -amin -1440 -exec cp -t /dest {} +