【发布时间】:2014-07-21 23:16:12
【问题描述】:
所以我让这个在本地工作,但它不在我的服务器上工作。问题是因为我使用scp 命令将我的文件传输到服务器吗?
这是我的代码:
// Local
if ('localhost' == $_SERVER['HTTP_HOST']) {
$cmd = 'find resume*.pdf -type f -print0 | xargs -0 stat -f "%m %N" |sort -rn | head -1 | cut -f2- -d" "';
// Production
} else {
$cmd = 'find resume*.pdf -type f -print0 | xargs -0 ls -drt | tail -n 1';
}
$results = exec($cmd);
echo '$results = ' . $results;
本地输出:
$ php -f index.php
$ $results = resume june 2014.pdf
远程输出:
$ php -f index.php
$ $results = resume_may_2014.pdf
这是我查看服务器上文件的修改日期时的样子。 我也无法弄清楚为什么它们(如在具有相同修改日期的简历文件中)以这种方式排序。它们不像是按字母顺序、文件大小等排序的。 p>
<!-- language: lang-bash -->
username@username.com [~/www/resume]# ls -lt
total 432
drwxr-xr-x 6 username username 4096 Jun 1 14:05 ./
-rw-r--r-- 1 username username 927 Jun 1 14:00 index.php
-rw-r--r-- 1 username username 2028 Jun 1 13:55 error_log
-rw-r--r-- 1 username username 135855 Jun 1 13:37 resume_may_2014.pdf
-rw-r--r-- 1 username username 0 Jun 1 13:37 resume_feb_2014.pdf
-rw-r--r-- 1 username username 118698 Jun 1 13:37 resume\ june\ 2014.pdf
drwxr-xr-x 4 username username 4096 Jun 1 13:18 resume\ june\ 2014.pages/
-rw-r--r-- 1 username username 135855 May 31 18:59 resume.pdf
引用的文章:
【问题讨论】:
-
文件列表按照您使用
-t选项请求的修改时间排序(最新的在前)。 -
谢谢@ooga!请注意我添加的部分(如在具有相同修改日期的简历文件中)部分。即:这些文件是如何排序的:resume_may_2014.pdf、resume_feb_2014.pdf、resume\ june\ 2014.pdf 等。这就是我的困惑。
-
对不起。我显然没有很好地阅读你的问题。在具有相同修改日期的文件组中,它们可能按照 inode 的顺序排列,这并不是特别有用。
-
也许创建时间(
-c)比上次修改时间对你有用。
标签: php bash shell scp command-line-interface