用-newer选项啊。 你可以先touch一个你想要的时间的文件如下: $ touch -t 08190800 test $ ls -l test -rw-r–r– 1 dba other 0 Aug 19 08:00 test 然后 $ find . -newer test -print . ./.sh_history $ ls -l .sh_history -rw——- 1 dba other 154 Aug 20 17:39 .sh_history
班主,我不能 access /usr/include/sys/inode.h . 摘书如下: Directories contain directory entries. Each entry contains a file or subdirectory name and an index node reference number (i-node number). To increase speed and enhance use of disk space, the data in a file is stored at various locations in the computer’s memory. The i-node contains the addresses used to locate all the scattered blocks of data associated with a file. The i-node also records other information about the file including time of modification and access, access modes, number of links, file owner, and file type. 可我发现 -atime 改了, -ctime 还没改. why ? ( 我先 cat 一个 ASCII 文件,再用 -atime -1 有它用 -ctime -1 居然没有它.) 着岂不跟 inode 信息改变, ctime 就改矛盾吗?
typedef struct inode { struct inode *i_forw; /* inode hash chain */ struct inode *i_back; /* ‘’ */ struct inode *av_forw; /* freelist chain */ struct inode *av_back; /* ‘’ */ int *i_fsptr; /* "typeless" pointer to fs dependent */ ino32_t i_number; /* i number, 1-to-1 with dev address */ ushort i_ftype; /* file type = IFDIR, IFREG, etc. */ short i_fstyp; /* File system type */ off_t i_size; /* size of file */ ushort i_uid; /* owner */ ushort i_gid; /* group of owner */ ushort i_flag; ushort i_want; /* i_flag extension to avoid MP races */ ushort i_count; /* reference count */ short i_nlink; /* directory entries */ dev_t i_rdev; /* Raw device number */ #define i_namtype i_rdev /* i_ftype==IFNAM subtype */ dev_t i_dev; /* device where inode resides */ struct mount *i_mton;/* ptr to mount table entry that */ /* this directory is mounted on */ struct region *i_rp; /* ptr to shared region if any */ struct stdata *i_sp; /* ptr to associated stream */ struct iisem *isem; /* ptr to XENIX semaphores */ struct iisd *isd; /* ptr to XENIX shared data */ } i_un; #define i_mnton i_un.i_mton /* i_ftype==IFDIR IMOUNT */ #define i_rptr i_un.i_rp /* i_ftype==IFREG || i_ftype==IFBLK */ #define i_sptr i_un.i_sp /* i_ftype==IFCHR || i_ftype==IFIFO */ #define i_sem i_un.isem /* i_ftype==IFNAM && i_namtype==IFSEM */ #define i_sd i_un.isd /* i_ftype==IFNAM && i_namtype==IFSHD */
struct fstypsw *i_fstypp; /* ptr to file system switch FSPTR */ long *i_filocks; /* pointer to filock (structure) list */ unsigned long i_mappages; /* number of pages currently cached */ unsigned long i_vcode; /* read-ahead block save (NFS) */ short i_wcnt; /* write open count or ITEXT count */ struct lockb i_cilock; /* tas to synchronize i_flag changes */ ushort i_rdlocks; /* count of non-exclusive lockers */ } inode_t;
没有什么工具显示,(可能是俺不知道) 把下面程序里的st_mtime换成st_ctime,或st_atime便可以得到你要的了. #include int main (int argc, char **argv) { struct stat buf; char date[80]; char fname[80]; printf("Enter filename (with full path) to check mtime : "); scanf("%s",fname); stat(fname, &buf); printf ("mtime (in sec) of %s = %ld\n", fname, buf.st_mtime); strcpy(date, ctime((time_t *)&(buf.st_mtime))); printf ("mtime (in date) of %s = %s\n", fname, date); }
至于文件备份,有什么不可以的么?
mtime ls -l 最近修改文件内容的时间 atime ls -lu 最近访问文件的时间 ctime ls -li 最近文件有所改变的状态 ,如文件修改,属性\属主 改变 ,节点 ,链接变化等 ,应该是不拘泥只是时间前后的改变
俺看了ls的帮助,以为只是按ctime或atime排序,显示的时间还是mtime.
仔细比较了一下,ayhan说的是对的.谢谢ayhan.
多谢 ahyan 提示 ! 我在 Solaris 上试过如下: mtime 用 ls -l 看到 atime 用 ls -lu 看到 ctime 用 ls -lc 看到. (ls -li 只有 inode number) 摘书如下: -c Uses time of last modification of the i-node (file created, mode changed, and so forth) for sorting (-t) or printing (-l or -n). -u Uses time of last access instead of last modification for sorting (with the -t option) or printing (with the -l option). -i For each file, prints the i-node number in the first column of the report.