我如何验证file2
上次修改时间是在之后file1
?
在此示例中,perl
的修改时间比 更近stack
。是否有可以执行此操作的 bash 或 Linux 命令?比较根据修改时间检查这些文件?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
答案1
找到了这里
for f in /abcd/xyz* do
[ "$f" -nt /abcd/test.txt ] && echo "file f$ found" done
答案2
if [[ FILE1 -nt FILE2 ]]; then
echo FILE1 is newer than FILE2
fi
取自 '男人测试'.摘录:
FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2
答案3
另一种方法是:
find -name file2 -newer file1
如果 file2 比 file1 更老或相同年龄,则返回 null。如果 file2 较新,则返回 file2 的名称(和目录)。
请注意,Linux 不会跟踪文件的创建时间。这些测试将针对最近的修改日期和时间。
答案4
如果你需要更详细的信息,你可以使用stat
命令
<tbielawa>@(fridge)[~/SuperUser] 03:15:10
$ touch firstFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:24
$ touch secondFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:45
$ stat firstFile
File: `firstFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151528 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:24.938721003 -0400
Modify: 2010-09-14 03:15:24.938721003 -0400
Change: 2010-09-14 03:15:24.938721003 -0400
<tbielawa>@(fridge)[~/SuperUser] 03:15:48
$ stat secondFile
File: `secondFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151529 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:45.074722792 -0400
Modify: 2010-09-14 03:15:45.074722792 -0400
Change: 2010-09-14 03:15:45.074722792 -0400