当前位置:  技术问答>linux和unix

ls -l命令和stat的结果不一致

    来源: 互联网  发布时间:2016-02-15

    本文导语:  在linux下发现一个很奇怪的现象,我把几个7月的文件夹(以及文件夹下的文件和目录)tar到一个新的目录下。用ls -l命令看到的文件时间还是7月份的时间。然后我用以下代码去显示解压后的文件的时间,发现用程序...

在linux下发现一个很奇怪的现象,我把几个7月的文件夹(以及文件夹下的文件和目录)tar到一个新的目录下。用ls -l命令看到的文件时间还是7月份的时间。然后我用以下代码去显示解压后的文件的时间,发现用程序显示出的时间却是当前解压缩的时间。
代码如下:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
int main()
{
        char strFilename[200]="xxxxxxxxxxxxxxxxxxxx";
        struct dirent* pdir;
        char strFile[200];
        DIR* dir;
        time_t tDirCreate;
        struct stat buf;
        dir = opendir(strFilename);
        while(( pdir = readdir(dir)) != NULL)
        {
                if ((strcmp(pdir->d_name,".") != 0) && (strcmp(pdir->d_name,"..") != 0))
                {
                        memset(strFile,'',sizeof(strFile));
                        strcpy(strFile,strFilename);
                        strcat(strFile,"/");
                        strcat(strFile,pdir->d_name);
                        sprintf(strFile,"%s%s",strFile,"/");
                        memset(&buf,'',sizeof(buf));
                        stat(strFile,&buf);
                        tDirCreate=buf.st_ctime;
                        printf("niDelFile:%sn %s %s %sn",strFile,ctime(&tDirCreate),
                                ctime(&buf.st_atime),ctime(&buf.st_mtime));
                }
        }
        closedir(dir);
        exit(1);
}



|
你在解压得时候请加这个参数:
tar zvf --atime-preserve filename.tar
这样,他就会保持原来的时间

|
tDirCreate=buf.st_ctime; 
它是 time of last status change ,
改成:
tDirCreate=buf.st_mtime

|
time_t st_atime; /* time of lastaccess*/
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last change */

可能还是参数没有选对吧....

|
不是很懂,顶

|
tar的问题. 保留/不保留原时间

    
 
 

您可能感兴趣的文章:

  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • linux 命令执行结束后,想查看结果,但部分结果已经被覆盖,如何查看?
  • 请教:在用lspci命令显示结果中,每一行结果结尾有(rev xx)之类字符,这个代表什么意思?
  • 管道可以把前一个命令的结果传到第二个命令的第一个参数吗
  • unix shell如何在不把命令结果打出来的情况下判断命令是否可以执行呢?
  • 为何makefile中执行的结果和直接在命令行中执行结果不一致?
  • linux脚本中命令运行结果判断
  • top与ps命令输出结果差异以及top结果的重定向
  • 命令结果的过滤显示
  • C调用SHELL命令执行结果
  • find命令执行结果含义,
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • 求助:我昨天安装了realplayer 9,结果装上了,但是当我用时,他总是说有另一个程序也在用,于是我想卸载,可是当我在命令行敲卸载命令后
  • 在C程序里面执行unix的命令的时候怎么获取执行的结果了?
  • 请问用 ls 命令时,怎样将显示的结果以页为单位进行显示
  • 请问fdisk -l命令结果竟然为空,这如何解决?
  • linux下如何合并命令结果
  • 钻牛角尖:命令 ls -d 究竟是什么意思?怎么结果是一个点儿?何意义?谢谢
  • 请问各位大侠,BShell里面怎么能够将命令执行的结果保存到变量里面?
  • 为什么命令ps -p <进程号>的结果中CPU%大于100?
  • 如何知道linux命令执行结果各项的含义
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • windows下cmd命令行显示UTF8字符设置(CHCP命令)
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • c/c++预处理命令预#error介绍
  • 请教:使用system(命令)或者exec(命令)启动一个进程执行命令,如何判断这个命令是否启动成功或正在运行?
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 使用ps命令,如何使用系统命令根据进程名称获取进程和子进程的ID?除了ps,还有其它系统命令的办法吗?谢谢。
  • c/c++预处理命令预#undef介绍
  • 如何运行外部命令后不等外部命令运行结束直接运行下一条命令
  • c/c++预处理命令预#pragma介绍
  • 请问:早redhat 7.3的字符模式下:改(设)IP 命令是:ifconfig eth0 192.168.0.xx ,那么改(设)掩码命令是什么呢? 还有改(设)网关地址命令是什
  • c/c++ iis7站长之家
  • 请教unix常用命令命令问题
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • linux下执行命令为什么要在命令前加./
  • c/c++预处理命令预#line介绍
  • 查询ls命令的命令文件属于系统中的哪个软件包?(在线等)
  • c/c++预处理命令预#include介绍
  • linux命令行下使用curl命令查看自己机器的外网ip
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • linux中有没有什么命令能列出所有linux的内部命令


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3