如何在unix中通过命令复制有限的文件?

时间:2014-05-17 05:58:06

标签: shell unix awk xargs

当我将受限文件尝试到另一个文件夹时,文件格式为.flv。使用命令:

ls -ltr | grep 'May 16 2013' | awk '{print $9}' | xargs cp -rf /root/directory/.

我该怎么做?

1 个答案:

答案 0 :(得分:2)

正如GoodPerson所提到的,更简单的方法是将findexec一起使用。

find . -name '*May 16 2013*' -exec cp -rf {} /root/directory \;

请注意,在上面的命令中,将对cp -rf {} /root/directory找到的每个文件或目录执行命令find,并将目录替换为{}

更新:上面的命令假定(可能是不相关的)您的文件名包含May 16 2013。如果您实际上是在该日期修改过的文件,则问题会稍微复杂一些,取决于您的find版本,但this answer告诉我们如何使用旧版本的find进行修改。

首先,创建两个带有指定日期的参考文件。然后,您会找到这些日期之间的文件。以下三个命令将在2014年5月16日找到文件。

touch -d '16 May  2014' /tmp/Ref
touch -d '17 May  2014' /tmp/Ref2
find . -maxdepth 1   -newer /tmp/Ref -and -not -newer /tmp/Ref2

如果您对find的结果感到满意,则可以按我上面的方式附加exec