文件操作

简介:

Linux的一则哲学:一切皆文件。既然入坑,那么管理linux就是管理一堆文件,操作文件这是展示个人十八般武艺的时候,功夫高下一招下。怎么成为高手,高手的招式都有哪些,拳脚掌刀枪棍棒,一招一式如何练就。

1文件存储

linux中存储一个文件,我们把文件分为两个部分存储,一部分是信息部分,一部分存储数据。

存储信息的部分叫inode,存储数据的部分叫blockinode的结构与数据的关系图1.1

wKioL1g0AyaRaea8AABqrFq4MhM619.png-wh_50

1.1 inode的结构与数据的关系图

Inode是不可以跨分区,就好比每个小区都有门牌号,inode就是门牌号,小区就是分区。门牌号虽然一样,但是里面住的人不一样。

2文件类型

文件操作前,我们要了解都有哪些文件类型,就像一个武林盟主的寻常的一掌,快一分慢一分都是累赘。真正的高手的任何一招都是经过千万磨练的,有些文件类型我们看似了解,其实我们不知道高手为什么要用3分力,为何不直接施展绝技一招秒杀。

1f,普通文件file

文件也有很多类型:文本文件、视频文件、压缩文件文件。一个文件占用一个inode

可以使用file FileName查看文件类型。

# fileanaconda-ks.cfg

anaconda-ks.cfg:ASCII English text

2d,目录文件directory,目录的数据块block内放置该目录下的文件的文件名和inode信息

3l,链接文件link,链接文件分为硬连接和软连接

1硬链接,其本质是在目录文件的数据快中添加一条新的数据,inode直接指向被链接文件的inode,使这个inode有两条或多条路径可以直接抵达。感觉很不形象,其实就是在一个井里插了两个水泵。

使用ll dir可以查看文件的硬链接数,红色部分内就是链接数。

spacer.gif

2软链接,则是前面一个水泵把水抽到自己家水池里后,后面的人把水泵插到前一家人的水池里。既然是把水管插到别人家的水池里,那么前一家断水,你家也就断水了。

当我们用的是软连接你想用水必须知道前一家的水池在哪里?这里就比较有趣了,比如前一家搬家了,那我们怎么办。断水。这里就分为两种情况了。

其中一种叫相对路径,比如前一家给你留了他家的电话,他再怎么搬家我们都会知道他再哪里,但为了找到他家比较麻烦,每次想喝水都要先给他打电话,我们按照电话里的方法一步步跑到他家。

还有一种就是使用绝对路径,他直接告诉我们他家住在男儿国250号,但是这有一个坏处,国家改名为女儿国后,我们就找不到他家了,我们就会永远的断水了。

4c,字符设备character

接受字符的文件,比如终端的tty

5b,块设备block

磁盘文件一般为块文件,可以随机读存。

6s,套接字文件sockt

用于同一主机进程间通信的文件,比管道强大的多。

7p,管道文件pipe

把数组、字符串等转送给其他进程。

3文件属性

文件属性

-rw-r--r--  1 root root      0 Oct 19 18:17 11aa

第一位是文件类型

234位是的属主的读、写、执行权限

567位位是属组的权限

8910位是其它用户的权限

1是硬链接数

第一个Root是属主

第二个root是属组

0是文件大小

然后就是文件的修改时间

最后是文件名

文件的信息不仅如此,使用stat可以查看文件更多的信息。文件的访问时间简称atime,修改时间简称mtime,改变时间简称ctime

4操作指令

操控文件的命令。

Ls的主要作用,是查看文件或文件夹的属性,过招之前我们必须先了解敌人,ls探查敌情的不二神器。

ls          [option]       [dirname|filename]

option:

      -l           以详细格式显示

      -a          显示全部文件

      -A          不显示...

      -d          不递归显示目录

      -u          反向

      -S          文件大小以小到大的顺序显示

      -R          递归

      -i           显示inode

      -t           按照时间顺序

touch不仅可以创建一个文件,同时也可以用来更改文件时间,

      -a          更改atime

      -m         更改mtime

      -t           指定时间格式是[[CC]YY]MMddhhmm[ss]

      -c          文件不存在,不创建

Touch 一个已经存在的文件,该文件的内容不会变更,但是文件的atimemtime的会更改为现在的时间。更改一个文件的时间时一般a或者m要与t命令组合才可以更改文件时间。

十八般武艺之掌mkdir

Mkdir创建目录,让我们上肢的招式更加复杂。文件系统就是被它的一团糟,每个目录内都放什么好难记。

-p  先创建父目录

-v          显示创建过程

-m         指定权限

Cp主要是用来复制文件和目录。复制目录时很容易复制一堆用不到的东西。

-a          等于-dr

-d          保持权限

       --preserv=

-r           递归

-f           强制

-i           交互

      Rm用来删除文件,。每个运维都听过一句话吧!mysql从删库到跑路,嗯,就是那么严重。

-r           递归

-f           强制

-i           交互

      Mv主要用来移动文件和更改文件名称。它就是日后陪伴我的主要工具,删除文件全用这个命令,不要怀疑这句话。

-r           递归

-f           强制

-i           交互

|和重定向,灵活使用|和可以迅速找到需要操作的文件。也是因为他们导致我们写的命令特别长。

|            把前一个命令的标准输出传送给下一个命令

Tee command |       先把结果输出,然后传送输出

>         输出重定向,把本来要输出到标准输出的结果,输出到指定的位置

>>        把输出结果附加到指定文件内容后面

<          输入重定向,给某些命令指定输入内容

&>      2>&1 错误和标准输出都输出到指定的位置

      Tr转换字符,把某些字符替换为某些字符。。

      -d‘’                删除引号内的对应的字符

      -c                        取反。与‘’中匹配到的内容取反。

      ‘’ ‘’           用后面的的替换前面的的内容,一个字符对应替换一个,假如前面的比后面的多,用后面最后一个替换多的字符。后面比前面多,无所谓了,2333

      -t    ‘’‘’    前面的比后面多的不替换

      -s                        压缩某种字符

glob查询大量文件的通配符

                匹配任意单个字符

*           匹配任意字符任意次

~           家目录

-      上一个活动目录

~-         上一个用户家目录

[:alnum:]      全部字母数字

[:alpha:]       任意字母

[:upper:]       大写字母

[:lower:]       小写字母

[:punct:]       全部符号

[:space:]       空格

{n,mo}          nmo

[abc]             abc

[^]                

[a-c]             a,A,b,A,c

[A-C]            A,b,B,c,C

总结

知道的再多也无用,知道一些就好,能最快解决生产环境的问题才是根本。





      本文转自Ailu0li 51CTO博客,原文链接:http://blog.51cto.com/oldking/1875271,如需转载请自行联系原作者







相关文章
|
5月前
|
存储 C语言 Windows
文件操作(上)
文件操作(上)
20 0
|
1月前
|
存储 程序员 编译器
|
1月前
|
C++
轻松学会文件操作(2)
轻松学会文件操作(2)
|
4月前
|
存储 Java C语言
文件操作你会了吗
文件操作你会了吗
41 0
|
5月前
|
程序员 编译器 C语言
文件操作(中)
文件操作(中)
19 0
|
5月前
|
存储 编译器 数据库
文件操作介绍(上)
文件操作介绍(上)
23 0
|
5月前
|
存储 C语言
文件操作介绍(下)
文件操作介绍(下)
28 0
|
7月前
|
C#
使用C#进行文件操作
在许多应用程序中,文件操作是常见的任务之一。无论是读取文件内容、写入数据,还是创建、移动和删除文件,C# 编程语言都提供了强大且易于使用的文件操作功能。本篇博客将介绍如何使用C#来进行基本的文件操作。
35 0
|
11月前
|
存储
超详细的文件操作讲解
各位朋友们,大家好啊,今天我要分享的是关于文件操作方面的知识。
|
存储 编译器 程序员
文件操作(详解)
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。
92 0
文件操作(详解)