我想在目录中获取ls的输出,然后将其存储在文本文件中。这是通过下面的代码完成的。
ls -lt $search_path > date_verify.txt
在此之后,我想像下面这样获取此文本文件的一行,并将列出的日期与特定文件的实际日期进行比较。许可也是如此。我想知道如何能够确定文件中的日期并将该日期与文件本身的当前修改日期进行比较。如果它们匹配,它将返回 True,如果不匹配,它将返回 False。如何比较日期?
-rwxr-xr-x 1 us000000 us000000 185 Jun 20 12:04 file1.txt
因为解析 ls 是个坏主意,所以你可以尝试这样的事情:
#!/bin/bash
for file in "$search_path"/* ; do
seconds=$(stat -c %Y "$file")
cmpdate=$(date -d @$seconds '+%Y-%m-%d')
infiledate=$(something)
if [ "$cmpdate" = "$infiledate" ] ; then
echo "Hurray, dates match for $file"
else
echo "$file has a mismatch"
fi
done
"+%Y-%m-%d"是格式字符串。您应该咨询man date
以获取文件中确切格式的日期。$(something)
应该替换为从文件中获取日期的方法,可能涉及head
,tail
,grep
和/或sed
的内容。