2011-08-19 40 views
2

我已经使用shell find命令列出目录中的所有文件。它工作正常。我想列出所有在指定日期后修改的文件已经使用这个命令执行find命令来创建日期后修改的所有文件

$command='touch -date "2010-01-18" /home;find.-newer /home '; 
$Getfile = exec($command,$ret,$output); 

但它不是事先工作.Thanks

+2

什么是不工作,shell命令或'exec()'调用?你得到了什么?一个错误,没有输出等... – DaveRandom

+1

我敢打赌,如果你在shell中使用* that * find命令,它不会工作。 – hakre

+0

-newer参数需要一个指向文件的指针,作为哪个文件应该显示为更新的参考。请参阅手册页'最近修改的文件比文件更新。如果file是一个符号链接,并且-H选项或-L选项有效,那么它始终使用它指向的文件的修改时间。“因此,您必须触摸文件而不是目录,并使用此文件作为参考,或者你只是省略了触摸并使用'-cmin <自上次修改以来的分钟数量'',因为你可以使用php来计算特定日期的分钟数。 – Rufinus

回答

0

查找特定日期之后修改过的文件在当前目录

$command='touch -t 201001180000 /tmp/timestamp; find . -type f -newer /tmp/timestamp' 
+0

我可以指定另一个目录吗? – Warrior

+0

绝对, $ command ='touch -t 201001180000 $ path1;找到$ path2 -type f -newer $ path1' – Serith

0

您可以使用目录查找,但是,建议语法 -

find ABSOLUTE_PATH -newer /home -type f 

.是当前工作目录,
(在网络环境下,可以参考DOCUMENT_ROOT + REQUEST_URI)

相关问题