精华内容
下载资源
问答
  • linux 文件长度 文件截断 rename renameat

    千次阅读 2015-01-23 16:06:25
    文件长度 stat结构成员st_size表示以字节为单位的文件的长度。此字段只对普通文件、目录文件和符号链接文件有意义。 对于普通文件,其文件长度可以是0,在开始读这种文件时,将得到文件结束指示。 对于目录,文件...

    文件长度

    stat结构成员st_size表示以字节为单位的文件的长度。此字段只对普通文件、目录文件和符号链接文件有意义。

    对于普通文件,其文件长度可以是0,在开始读这种文件时,将得到文件结束指示。

    对于目录,文件长度通常是一个数的整倍数。

    对于符号链接,文件长度是在文件名中的实际字节数。例如,在下面的例子中,文件长度15就是路径名/usr/lib的长度:

    lrwxrwxrwx  1 root root      15 2014-05-12 17:00 libz.so.1 -> libz.so.1.2.3.3
    (注意,因为符号链接文件长度总是由st_size指示,所以它并不包含通常C语言做名字结尾的null字节)
    现今,大多数现代的UNIX系统提供字段st_blksize和st_blocks,其中,第一个是对文件I/O较合适的快长度,第二个是所分配的数据512字节块数。为了提高效率,标准I/O库也试图一次读、写st_blksize个字节。

    文件截断

    有时我们需要在文件尾端处截取一些数据以缩短文件。将一个文件的长度截断为0是一个特例,在打开文件时使用O_TRUNC标志可以做到这一点。为了截断文件可以调用函数truncate和ftruncate。

    #include <unistd.h>
    int truncate(const char *pathname, off_t length);
    int ftruncate(int fd, off_t length);
                                                                    连个函数的返回值:若成功,返回0;若出错,返回-1
    这两个函数将一个现有文件长度截断为length。如果该文件以前的长度大于length,则超过length以外的数据就不再能访问。如果以前的长度小于length,文件长度将增加,在以前的文件尾端和新文件的尾端之间的数据将作为0。

    函数rename和renameat

    文件或目录可以用rename函数或者renameat函数进行重命名。

    #include <stdio.h>
    int rename(const char *oldname, const char *newname);
    int renameat(int oldfd,const char *oldname, int newfd, const char *newname);
                                                                                  两个函数的返回值:若成功,返回0;若出错,返回-1
    根据oldname是指文件、目录还是符号链接,有几种情况需要加以说明。

    (1)如果oldname指的是一个文件而不是目录,那么为该文件或符号链接重命名。在这种情况下,如果newname已存在,则它不能引用一个目录。如果newname已存在,而且不是一个目录,则先将目录项删除然后将oldname重命名为newname。对包含oldname的目录以及包含newname的目录,调用进程必须具有写权限,因为将更改这两个目录。

    (2)如若oldname指的是一个目录,那么为该目录重命名。如果newname已存在,则它必须引用一个目录,而且该目录应当是空目录(空目录指只有.和..项)。如果newname存在(而且是一个新目录),则先将其删除,然后将oldname重命名为newname。另外,当为一个目录重命名时,newname不能包含oldname作为其路径名字的路径前缀。例如,不能将/usr/foo重命名为/usr/foo/testdir,因为旧名字(/usr/foo)是新名字的路径前缀,因而不能将其删除。

    (3)如若oldname或newname引用符号链接,则处理的是符号链接本身,而不是它所引用的文件。

    (4)不能对.和..重命名。更确切的说,.和..都不能出现在oldname和newname的最后部分。

    (5)作为一个特例,如果oldname和newname引用同一文件,则函数不做任何更改而成功返回。

    如若newname已经存在,则调用进程对它需要有写权限。另外,调用进程将删除oldname目录项,并可能要创建newname目录项,所以它需要对包含的oldname及包含newname的目录具有写和执行权限。

    除了当oldname或newname指向相对路径名时,其他情况下renameat函数与rename函数功能相同。如果oldname参数指定了相对路径,就相对于oldfd参数引用的目录来计算oldname。类似的,如果oldname参数指定了相对路径,就相对于newfd引用的目录来计算newname。oldfd或newfd参数都能设置成AT_FDCWD,此时相对于当前目录来计算相应的路径名。




    展开全文
  • linux 显示文件多少

    千次阅读 2016-07-29 11:21:30
    显示文件多少 [root@iZ9488z4qfcZ test]# wc -l 8 [root@iZ9488z4qfcZ test]# wc user.txt  8 12 108 user.txt 以下转载:http://www.cnblogs.com/peida/archive/2012/12/18/2822758.html ...

    显示文件多少行


    [root@iZ9488z4qfcZ test]# wc -l < user.txt
    8
    [root@iZ9488z4qfcZ test]# wc user.txt

      8  12 108 user.txt


    以下转载:http://www.cnblogs.com/peida/archive/2012/12/18/2822758.html

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

    1.命令格式:

    wc [选项]文件...

    2.命令功能:

    统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。

    3.命令参数:

    -c 统计字节数。

    -l 统计行数。

    -m 统计字符数。这个标志不能与 -c 标志一起使用。

    -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

    -L 打印最长行的长度。

    -help 显示帮助信息

    --version 显示版本信息

    4.使用实例:

    实例1:查看文件的字节数、字数、行数

    命令:

    wc test.txt

    输出:

    [root@localhost test]# cat test.txt 

    hnlinux

    peida.cnblogs.com

    ubuntu

    ubuntu linux

    redhat

    Redhat

    linuxmint

    [root@localhost test]# wc test.txt

     7  8 70 test.txt

    [root@localhost test]# wc -l test.txt 

    7 test.txt

    [root@localhost test]# wc -c test.txt 

    70 test.txt

    [root@localhost test]# wc -w test.txt 

    8 test.txt

    [root@localhost test]# wc -m test.txt 

    70 test.txt

    [root@localhost test]# wc -L test.txt 

    17 test.txt

    说明:

    7     8     70     test.txt

    行数 单词数 字节数 文件名

    实例2:用wc命令怎么做到只打印统计数字不打印文件名

    命令:

    输出:

    [root@localhost test]# wc -l test.txt 

    7 test.txt

    [root@localhost test]# cat test.txt |wc -l

    7[root@localhost test]#

    说明:

    使用管道线,这在编写shell脚本时特别有用。

    实例3:用来统计当前目录下的文件数

    命令:

    ls -l | wc -l

    输出:

    [root@localhost test]# cd test6

    [root@localhost test6]# ll

    总计 604

    ---xr--r-- 1 root mail  302108 11-30 08:39 linklog.log

    ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log

    -rw-r--r-- 1 mail users     61 11-30 08:39 log2013.log

    -rw-r--r-- 1 root mail       0 11-30 08:39 log2014.log

    -rw-r--r-- 1 root mail       0 11-30 08:39 log2015.log

    -rw-r--r-- 1 root mail       0 11-30 08:39 log2016.log

    -rw-r--r-- 1 root mail       0 11-30 08:39 log2017.log

    [root@localhost test6]# ls -l | wc -l

    8

    [root@localhost test6]#

    说明:

    数量中包含当前目录




    展开全文
  • linux中的文件属性过分四段,如 -rwzrwz--- 第一段 - 是指文件类型 表示这是个普通文件 文件类型部分 -为:表示文件 d为:表示文件夹 l为:表示...

     

    Linux用户分为:拥有者、组群(Group)、其他(other)
    linux中的文件属性过分四段,如  -rwzrwz---
    第一段  -  是指文件类型 表示这是个普通文件
    文件类型部分
    -:文件
    d:文件夹
    l:链接文件,可以理解为 windows中的快捷方式(link file)
    b:供存储周边设备
    c:一次性读取装置
     
    第二段  rwz  是指拥有者具有可读可写可执行的权限  
    类似于windows中的所有者权限比如 administrator 对文件具有 修改、读取和执行权限
     
    第三段  rwz 是指所属于这个组的成员对于这个文件具有,可读可写可执行的权限      
    类似于windows中的组权限比如administrators组,属于这个组的成员对于文件的都有 可读可写可执行权限
     
    第四段  --- 是指其他人对于这个文件没有任何权限

     

    类似于windows中的 anyone 一样就是说所有人对着个文件都会有一个怎样的权限.

    哪个指令是将所有缓冲区的内容写入到磁盘?

    正确答案: B   

    save
    sync
    edbuff
    flush

    格式:sync

    强制将内存中的文件缓冲内容写到磁盘。

     

    展开全文
  • Linux对路径和文件长度的限制

    万次阅读 2013-01-08 09:09:00
    Linux中关于路径长度和文件名长度的限制定义在limits.h中: /kernel/include/linux/limits.h #ifndef _LINUX_LIMITS_H #define _LINUX_LIMITS_H #define NR_OPEN 1024 #define NGROUPS_MAX 65536 #define...

    Linux中关于路径长度和文件名长度的限制定义在limits.h中:

    /kernel/include/linux/limits.h


    #ifndef _LINUX_LIMITS_H
    #define _LINUX_LIMITS_H
    
    #define NR_OPEN 1024
    
    #define NGROUPS_MAX 65536  
    #define ARG_MAX 131072  
    #define CHILD_MAX 999  
    #define OPEN_MAX 256  
    #define LINK_MAX 127  
    #define MAX_CANON 255  
    #define MAX_INPUT 255  
    #define NAME_MAX 255        //文件名最大长度255个字符
    #define PATH_MAX 4096       //路径最大长度4096个字符
    #define PIPE_BUF 4096  
    #define XATTR_NAME_MAX 255  
    #define XATTR_SIZE_MAX 65536  
    #define XATTR_LIST_MAX 65536  
    
    #define RTSIG_MAX 32
    
    #endif
    


     
    

    展开全文
  • Linux C获取文件长度和全部内容

    千次阅读 2018-03-28 15:57:42
    FILE*fp; fp=fopen("localfile","rb");// localfile文件名 fseek(fp,0L,SEEK_END); /* 定位到文件末尾 */ flen=ftell(fp);... /* 根据文件大小动态分配内存空间 */ if(...
  • linux中的文件属性过分四段,如 -rwxrwx— 第一段 - 是指文件类型 表示这是个普通文件 文件类型部分 -为:表示文件 d为:表示文件夹 l为:表示链接文件,可以理解为 windows中的快捷方式(link file) b为:表示里面...
  • 【Linux】Linux文件与文件的存储

    万次阅读 2018-07-31 18:39:51
    文件的基本概念 文件就是一组按照某种格式组织的具有完整逻辑意义的信息。 从使用和创建文件的用户角度来看,文件是磁盘的最小存储单元,用户数据除非在文件中,否则不能保存到磁盘;从进程的角度来看,文件是一种...
  • 嵌入式系统中,在挂载的U盘(FAT32格式)或移动硬盘建立文件时,文件名只能显示8+3长度(文件名8个字符+扩展名3个字符),超过这个长度的文件名后面就会被~1替代。解决文件名显示长度限制方法如下: 配置busybox:
  • linux 文件行处理命令

    千次阅读 2012-10-30 15:45:07
    linux下的文件类型 LINUX中的文件类型d 目录文件。l 符号链接(指向另一个文件,类似于瘟下的快捷方式)。s 套接字文件。b 块设备文件,二进制文件。c 字符设备文件。p 命名管道文件。- 普通文件,或更准确...
  • linux C: lseek 获取文件长度

    千次阅读 2013-05-27 10:51:39
    转载: ... 简介 函数名: lseek 功 能: 移动文件读/写指针 ...头文件:#include #include ...用 法: off_t lseek(int handle, off_t offset, int fromwhere);...所有打开的文件都有一个当前文件偏移量(current file off
  • Linux文件空洞与稀疏文件

    千次阅读 2017-08-19 19:40:20
    1、Linux文件空洞与稀疏文件 2、文件系统数据存储 3、文件系统调试 文件空洞 在UNIX文件操作中,文件位移量可以大于文件的当前长度 在这种情况下,对该文件的下一次写将延长该文件,并在文件中构成一个空洞。...
  • linux切割文件

    万次阅读 2017-06-15 21:14:59
    split --help   ...Usage: split [OPTION]......4)指定切割后的文件后缀名数字的长度 -a 4,这里长度可根据切割出来的文件有多少估算   split -l 2 data.log -d -a 4 data_   原文出自: ...
  • LinuxLinux的虚拟文件系统

    千次阅读 2018-08-04 20:01:27
    Linux的虚拟文件系统与实际文件系统的关系如下所示:   VFS的原理 各种文件系统之所以有区别,就在于它们的目录文件结构各不相同,随之而来的也就是对文件目录的操作函数也不相同。对于前者可以在保留原系统...
  • Linux文件系统详解

    万次阅读 多人点赞 2019-05-29 16:07:53
    从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。本文参考: http://blog.chinaunix.net/uid-8698570-id-1763151.html ...
  • LinuxLinux Ext2文件系统

    千次阅读 2018-08-02 20:21:47
    下面以Linux的Ext2为例介绍文件系统的组成。 Ext2采用了分立式目录结构,即一个文件的目录分为目录项和索引节点两个部分。   Ext2的索引节点 在一个实际分立式目录的文件系统中,索引节点(inode)主要需要两...
  • 表示以点开头,因为点在Linux中是特殊字符(需要反斜杠转义),表示任意某个字符,必须要匹配一个字符,空格也,空格也表示一个字符,但是不能是空, * 表示某字符匹配0次或者多次,.* 连在一起就表示任意长度的...
  • 本文是要讲linux 不打开文档/文件的情况下,替换文本内容。 打开文档,在文档/文件内替换内容的,可以用vim,可参考这篇文章vim 替换文本 。 话题相关 #linux 文件替换字符串 #sed 字符串替换 #linux 替换指定内容...
  •  当然如果n小于每行的字符个数,也可以读,只不过读的次数要多。  假设一行为 : 123456789   [cpp]   view plain   copy char  s[2];    int  num=0;    while ((fgets(s,2,fp))!=NULL)   {   ...
  • Linux shadow文件

    千次阅读 2018-12-17 17:11:43
    MD5进行密码的加密,MD5算法对密码的加密规则,第一个,输入的长度不固定但是输出的长度是固定的,不管输入的密码长度是6位的还是8位的,生成的加密的密码是固定长度的值,单向不可逆的。 [lulei@localhost ~]$ ...
  • Linux文件内容查找文件

    万次阅读 2014-03-28 18:52:30
    遇到这样一个面试题:在Linux下从abc目录开始查找所有扩展名为.log的文本文件,并找出内容包含ERROR的文件。 查找命令:find /abc -name "*.log" | xargs grep "ERROR" 一般工作中常用按名称查找、按时间或...
  • 1、增加个临时文件;把源文件内容逐个字节或者逐行读取出来,然后修改或者丢弃,放到临时文件中,当把源文件中所有内容过滤后,再把临时文件全部覆盖回源文件; 2、读取到内存中修改;把整个文件读取到内存中,然后...
  • 1、列出文件名长度为12的文件 ls |awk '{if(length($0)==12) {print $0}}' 2、删除文件名长度为12的文件 a=($(ls | awk '{if(length($0)==12) {print $0}}')) && for i in "${a[@]}";do rm "$i";done ...
  • Linux下C语言计算文件的md5值(长度32)

    万次阅读 多人点赞 2014-11-07 18:56:51
    google了好久都没有找到合适的,其实我只需要一个函数,能计算文件的 md5 值就好, 后来找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算出来的都不一样)。 废话少说,直接...
  • linux中的文件属性过分四段,如 -rwzrwz— 第一段 - 是指文件类型 表示这是个普通文件 文件类型部分 -为:表示文件 d为:表示文件夹 l为:表示链接文件,可以理解为 windows中的快捷方式(link file) b为:表示里面...
  • linux下快速查找文件

    万次阅读 多人点赞 2018-05-30 11:32:10
    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。... (2)grep是根据文件的内容进行查找,会对文件按照给定的模式(patter)进行匹配查找。  ...
  • linux查找文件命令

    万次阅读 2019-03-21 10:54:03
    在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。... (2)grep是根据文件的内容进行查找,会对文件按照给定的模式(patter)进行匹配查找。  一.find命令 ...
  • Linux文件IO_02

    千次阅读 2019-04-09 16:14:59
    Linux文件IO_024.lseek函数详解4.1lseek函数介绍4.2lseek实践:计算文件长度5.文件共享的实现5.1文件共享概念5.2文件共享的3种实现方式5.3文件描述符细节6.C语言标准库的文件IO介绍 4.lseek函数详解 4.1lseek函数...
  • Linux查看文件常用命令

    千次阅读 2018-10-06 11:44:14
    2、more:Enter键显示文件下一,空格键显示下一页,F键显示下一屏内容,B键显示上一屏内容 3、less:基本同上,使用/GET查找字符串 4、tail:-n最后几行、-f持续显示 5、head:显示文件开头 6、sort:-n按顺序...
  • Linux文件类型分类

    千次阅读 2016-08-20 20:59:30
    Linux文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。linux文件的删除方式是用rm 命令。 Linux文件类型; Linux文件类型和Linux文件的文件名所代表的意义是两个...
  • 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 269,268
精华内容 107,707
关键字:

linux查询文件每行的长度

linux 订阅