这是我正在使用的命令:
find absolute-path -name "*" -amin -120 -exec cp -f absolute-destination {} \;
我正在尝试将许多目录从一个目录复制到另一个目录,但仅复制在最近2小时内创建的目录。
我的命令虽然不起作用,但我并不清楚为什么,如果不是很明显,我不是一个经验丰富的Linux用户。从我cp
看来,我似乎将我的预定目的地视为来源。
我什至尝试使用xargs
,但我了解得更少。
在Debian Squeezy中使用Bash并在root用户中运行命令。
从我
cp
看来,我似乎将我的预定目的地视为来源。
是的。那是因为一般的Linux / Unix语法是这样的:
[some command] [some command options] [source item] [destination item]
因此,请查看您的命令:
find absolute-path -name "*" -amin -120 -exec cp -f absolute-destination {} \;
这cp -f absolute-destination {}
是倒退的,因为{}
代表find
命令所找到的源文件,而“绝对目的地”正是它的含义;一个目的地。因此,该命令的该部分应重写为cp -f {} absolute-destination
。
此外:
-name "*"
如果您仍要根据时间搜索所有文件,则是多余的和多余的。这意味着您可以抛弃它。amin
有点混乱,因为它-amin -120
表示“文件已在最近120分钟内被访问”。如果要对文件的创建时间采取行动,则应将cmin
yhat更改为-aka:n
几分钟前更改-而不是;有关更多详细信息,请参见Linuxfind
手册页。因此,最后的命令将是:
find absolute-path -cmin -120 -exec cp -f {} absolute-destination \;
但是在运行该cp
命令之前,您应该始终执行“空运行”echo
以准确查看正在发生的事情,如下所示:
find absolute-path -cmin -120 -exec echo {} \;
请记住,在运行实际/最终命令之前先对这样的命令进行“空运行”测试,从长远来看会为您省去麻烦。特别是如果您计划以方式运行命令root
。
您永远不会知道您是否可能在命令逻辑中犯了一个简单的,无意的错误,而这种错误可能会以意想不到的方式恶化。如果不经过测试就将结构错误的命令投入“生产”中,一开始可能会节省您几分钟的时间,但随后可能需要数小时(有时甚至是几天)的清理工作。在命令行中工作时,请务必安全使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句