使用 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}')
答案 0 :(得分: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.
如果您指出了实际的最终目标,那将会有所帮助。