linux实验报告二--文件操作(续)

#include <stddef.h>

#include <stdio.h>

#include <sys/types.h>

#include <sys/stat.h>       // stat 函数所在的文件

#include <dirent.h>

int main(void)

{

   DIR *dp;

   struct dirent *ep;

   struct stat st;

   char dirp[50];

   printf("Please input a dir name:/n");

   scanf("%s",&dirp);      //读入目录名

   dp=opendir("dirp");    //打开所给目录

   printf("filename:/ttype:/tPermission/taccesstime/tlastmodtime/tsize/t");

   if(dp!=NULL)          //如果打开目录成功,则进行操作。

   {

      while(ep = readdir(dp))      //读每一个目录项的循环

      {

        if(ep->d_name[0]!='.')     //判断文件名称的第一个字符是否'.',如果是,表明是隐含文件,我们不动,否则操作

{

    //stat函数打开文件的信息,第一个参数是文件的路径,第二个参数存放文件的信息

       if(stat(ep->d_name,&st)!=-1)  //读成功

 {

           printf("%s/t",ep->d_name);

         if((st.st_mode&S_IFMT)==S_IFDIR)            //判断文件的类型

              printf("Directory/t");                 //目录

             else if((st.st_mode&S_IFMT)==S_IFBLK)   //块文件

              printf("Block special file/t");

             else if((st.st_mode&S_IFMT)==S_IFCHR)   //特殊字符文件

                printf("character special file/t");

             else if((st.st_mode&S_IFMT)==S_IFREG)   //普通文件

                printf("Ordinary file/t");

             else if((st.st_mode&S_IFMT)==S_IFIFO)   //管道文件

                printf("pipefile file/t");

           printf("%o/t",st.st_mode&0x1ff);          //文件的权限

           printf("%15s/t",ctime(st.st_atime));      //文件创建时间

           printf("%15s/t",ctime(st.st_mtime));      //文件上次修改时间

           printf("%ld/n",st.st_size);               //文件的大小

         }

}

         }

    closedir(dp)               //关闭目录

  

    }

    else

        puts("Couldn't open the directory./n");     //打开不成功时,输出不能打开路径

    return 0;

}

一、 实验目的 1、 通过实验了解和熟悉Linux文件系统 2、 掌握文件操作命令 3、 了解文件与目录的默认权限,掌握文件权限的设置 4、 掌握文件的链接 、 开发工具和运行环境 1、虚拟机VMware 2、Linux操作系统 三、 实验内容 1、了解和熟悉Linux文件系统 了解Linux文件系统、文件命名、文件类型和常见目录:根目录(/)、 .bin、boot、dev、etc、home、Lib、lost+found、 opt、root、 usr、mnt、proc、sbin、 tmp、 var. 2、文件操作命令: (文件和目录名自拟、自行设计实验步骤) (1) 1s: 显示目录内容 -a显示指定目录下所有的目录与文件 -1以 长格式显示文件的详细信息。 -d显示目录本身信息 i显示索引号 (2) cd:改变当前工作目录 格式: cd [目录名] cd .. 上移- -层目录(注意,需要有空格) cd 移到自己的主目录 (3) cat: 查看文件信息命令 显示文件信息:格式: cat [选项]文件名 -n输出编号 建立文件: cat>新文件名ctrl+d 合并文件: cat 文件1文件2>新文件 (4) more: 逐屏显示文件内容 格式: more 文件名 (5) cp:复制命令 格式: cp [选项] 源文件或目录目标文件或目录 同时可以复制多个文件 -f 出现覆盖情况不提示 -p复制后,保持原有属性。目标文件保持原有的生成日期和inode编号 -r 复制目录及目录下的文件 普通用户并不能进行这样的操作,只能切换到root用户然后进行-r的递归复制。 (6) rm: 删除文件与目录 格式: mv [选项] 文件名或目录名 -f删除时不提示 -r 删除目录及目录下的文件(常用: -rf ) (7) mv: 文件移动及改名命令 格式: mv [选项]源文件或目录 目 标文件或目录 -f覆盖文件时 不提示 (8) grep: 文件信息检索命令 格式: grep [选项]字符串 [文件 ... ] -i 不区分大小写 (9) sort: 排序命令 格式: sort [选项][文件列表] (10) mkdir 创建目录命令 格式: mkdir [选项] [目录名] 可以同时创建多个目录 p :递归创建目录 -m:创建目录的时候赋予权限 (11) rmdir删除“空”目录命令 格式: rmdir [选项] [目录名] 注意:目录为空才能删除;否则需采用rm - r来删除。 p :递归删除目录,删除子目录,其父目录为空时,也同时删除3、文件权限的设置: (文件和目录名自拟、自行设计实验步骤) 文件的属主与属组 (1) chown [选项] [所有者][:[组]] 文件列表 更改每个文件的所有者和/或所属组。 字母模式形式即“用户对象操作符号操作权限”,其命令格式为:(2) chmod [选项]模式[,模式]文件名 +:添加-:取消=:赋予并取消其他所有 数字形式即由三位八进制数字组成,其命令格式为: chmod八进制模式 文件文件的特殊权限: SUID、 SGID 和Sticky 4、文件的链接: (文件和目录名自拟、自行设计实验步骤) (1)硬链接:不带选项,ln命令创建硬链接。在另外的目录或本目录中增加目标文件的一个目录项,一个文件就登记在多个目录中 1n源文件目标文件 (2)软链接(符号链接):用“1n -s”命令建立符号链接时,最好源文件用绝对路径名,这样可以在任何工作目录下进行符号链接。类似于Windows系统中的快捷方式。 In -s源文件目标文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值