-1

使用pdksh

stat()命令在系统上不可用。

我需要遍历找到的文件数量并将它们的日期存储在一个数组中。$COMMAND存储在中找到的文件数,$location如下所示。

有人能帮助我吗?

COMMAND=`find $location -type f | wc -l`
CMD_getDate=$(find $location -type f | xargs ls -lrt | awk '{print $6} {print $7}')
4

1 回答 1

0

好吧,首先,您不需要执行wc. 数组的大小会告诉你有多少。这是构建日期和名称数组的简单方法(专为 pdksh 设计;在 AT&T ksh 或 bash 中有更好的方法):

set -A files 
set -A dates
find "$location" -type f -ls |&
while read -p inum blocks symode links owner group size rest; do 
  set -A files "${files[@]}" "${rest##* }"
  set -A dates "${dates[@]}" "${rest% *}"
done

这是检查结果的一种方法:

print "Found ${#files[@]} files:"
let i=0
while (( i < ${#files[@]} )); do
  print "The file '${files[i]}' was modified on ${dates[i]}."
  let i+=1
done

这将为您提供完整的日期字符串,而不仅仅是月份和日期。这可能是您想要的 - ls -l( 或find -ls) 的日期输出是可变的,具体取决于文件被修改的时间。鉴于这些文件,您的原始格式如何区分 和 的修改a时间b

$ ls -l
total 0
-rw-rw-r--+ 1 mjreed  staff  0 Feb  3  2014 a
-rw-rw-r--+ 1 mjreed  staff  0 Feb  3 04:05 b

如所写,上面的代码将为上面的目录产生这个location= .

Found 2 files:
The file './a' was modified on Feb  3  2014.
The file './b' was modified on Feb  3 00:00.

如果您指出实际的最终目标是什么,那将会有所帮助。

于 2015-06-02T13:33:43.520 回答