Linux学习笔记4 file,文件系统,mkdir,tree,rm,rmdir,touch

1.file命令

通过查看文件的头部信息来获取文件类型和编码格式
可执行文件格式:

  • Windows: PE
  • Linux: ELF(Executable and Linkable Format)

2.文件系统:

rootfs: 根文件系统

FHS(Filesystem Hierarchy Standard): 多数Linux版本采用这种文件组织形式

  • /boot: 系统启动相关的文件,如内核、initrd、以及grub(bootloader)
  • /dev: 设备文件
    块设备: 随机访问,数据块,每次与系统传输1个字符的设备,例如虚拟终端
    字符设备:线性访问,按字符为设备 如硬盘、CD-ROM和内存区域
  • /etc: 配置文件
  • /home/USERNAME: 用户家目录
  • /root: 管理员的家目录
  • /lib: 库文件
    静态库: .a
    动态库: .dll, .so(shared object)
    /lib/modules: 内核模块文件
  • /lost+found: 存放修复或损坏的文件的
  • /media: 挂载点目录,移动设备
  • /mnt: Mount point for a temporarily mounted filesystem
    额外的临时文件系统
  • /opt: 可选 发行版附加的一些软件包(如ubuntu kyli的wps)安装目录
  • /proc: 伪文件系统,内核映射文件
  • /sys: 伪文件系统 跟硬件设备相关的属性硬件文件
  • /tmp: 临时文件(用户只能删除和创建自己的文件)/var/tmp
  • /var: 可变化的文件
  • /bin: binary 可执行文件,用户名了
  • /sbin: root用户管理命令
  • /usr: Unix System Resource
  • /usr/local: 第三方软件安装目录

文件名规则:

  • 不能超过255个字符
  • 不能使用/当文件名
  • 严格区分大小写

3.mkdir 创建空目录

选项

  • -p:
    x,y目录不存在时 不使用-p选项无法连续创建目录
[root@localhost ~]# mkdir x/y/z
mkdir: cannot create directory `x/y/z': No such file or directory

加上-p选项 三个目录同时创建

[root@localhost ~]# mkdir -p x/y/z
[root@localhost ~]#
[root@localhost ~]# tree x
x
└── y
    └── z

2 directories, 0 files
  • -v: 显示创建过程
[root@localhost ~]# mkdir -pv m/n/q
mkdir: created directory `m'
mkdir: created directory `m/n'
mkdir: created directory `m/n/q'

例子

1.创建目录/mnt/test/x/n,/mnt/test/y:

使用花括号展开
[root@localhost ~]# mkdir -pv /mnt/test/{x/n,y}
mkdir: created directory `/mnt/test'
mkdir: created directory `/mnt/test/x'
mkdir: created directory `/mnt/test/x/n'
mkdir: created directory `/mnt/test/y'

2.创建目录a_b,a_c,d_b,d_c:

[root@localhost ~]# mkdir -v {a,d}_{b,c}
mkdir: created directory `a_b'
mkdir: created directory `a_c'
mkdir: created directory `d_b'
mkdir: created directory `d_c'

4.tree 查看目录树

[root@localhost bin]# tree /home/qkong/
/home/qkong/
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── Templates
└── Videos

5.rm 删除文件

选项

  • -i: interactive 删除文件时询问是否删除 y/n
  • -f: force 强制删除 不询问
  • -r: recursive 递归删除目录下所有文件

例子

创建测试文件夹

[root@localhost ~]# mkdir demo
[root@localhost ~]# mkdir -p demo/{a1,a2}/{b1,b2}
[root@localhost ~]# touch demo/demoFile
[root@localhost ~]# tree demo
demo
├── a1
│   ├── b1
│   └── b2
├── a2
│   ├── b1
│   └── b2
└── demoFile

6 directories, 1 file

删除文件demoFile

[root@localhost ~]# rm -i demo/demoFile
rm: remove regular empty file `demo/demoFile'? n
[root@localhost ~]# tree demo
demo
├── a1
│   ├── b1
│   └── b2
├── a2
│   ├── b1
│   └── b2
└── demoFile

6 directories, 1 file
[root@localhost ~]# rm -i demo/demoFile
rm: remove regular empty file `demo/demoFile'? y
[root@localhost ~]# tree demo
demo
├── a1
│   ├── b1
│   └── b2
└── a2
    ├── b1
    └── b2

6 directories, 0 files

强制删除文件:

[root@localhost ~]# touch demo/demoFile
[root@localhost ~]# tree demo
demo
├── a1
│   ├── b1
│   └── b2
├── a2
│   ├── b1
│   └── b2
└── demoFile

6 directories, 1 file
[root@localhost ~]# rm -f demo/demoFile
[root@localhost ~]# tree demo
demo
├── a1
│   ├── b1
│   └── b2
└── a2
    ├── b1
    └── b2

6 directories, 0 files

递归删除文件夹:

[root@localhost ~]# rm -rf demo/a1
[root@localhost ~]# tree demo
demo
└── a2
    ├── b1
    └── b2

3 directories, 0 files

6.rmdir 删除目录

删除空目录

选项

  • -p: 当子目录被删除后使它也成为空目录的话,则顺便一并删除

例子

创建目录a/b1/c1,a/b1/c2,a/b2/c1,a/b2/c2:

[root@localhost ~]# mkdir -p a/{b1,b2}/{c1,c2}
[root@localhost ~]# tree a
a
├── b1
│   ├── c1
│   └── c2
└── b2
    ├── c1
    └── c2

删除目录a/b1/c1:

[root@localhost ~]# rmdir a/b1/c1
[root@localhost ~]# tree a
a
├── b1
│   └── c2
└── b2
    ├── c1
    └── c2

5 directories, 0 files

加-p选项删除目录c2, 删除c2后b1也是空目录, b1自动删除,而a目录下还有b2目录,提示删除目录a失败因为a目录不为空

[root@localhost a]# rmdir -p a/b1/c2
rmdir: failed to remove directory `a': Directory not empty
[root@localhost a]# tree a
a
└── b2
    ├── c1
    └── c2

3 directories, 0 files

7.touch 修改文件时间戳

选项

  • -a: 修改访问时间(access time)
  • -m: 修改修改时间(modification time)
  • -t: 指定时间(而不是当前时间) 格式为:[[CC]YY]MMDDhhmm[.ss]
  • -c: –no-create 不创建文件

例子

创建demo文件:

[root@localhost Desktop]# ls
[root@localhost Desktop]# touch demo
[root@localhost Desktop]# ls
demo
[root@localhost Desktop]#

修改访问时间,同时change time也随之修改:

[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 11:04:18.276667822 +0800
Modify: 2017-02-14 11:04:18.276667822 +0800
Change: 2017-02-14 11:04:18.276667822 +0800
[root@localhost Desktop]# touch -a demo
[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 11:04:31.932276861 +0800
Modify: 2017-02-14 11:04:18.276667822 +0800
Change: 2017-02-14 11:04:31.932276861 +0800

修改修改时间,同时change time也随之修改:

[root@localhost Desktop]# touch -m demo
[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 11:04:31.932276861 +0800
Modify: 2017-02-14 11:06:27.727052949 +0800
Change: 2017-02-14 11:06:27.727052949 +0800

指定修改时间:

[root@localhost Desktop]# touch -t 201702141130.30 demo
[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 11:30:30.000000000 +0800
Modify: 2017-02-14 11:30:30.000000000 +0800
Change: 2017-02-14 11:27:48.751283813 +0800

指定修改时间和修改的哪个时间

[root@localhost Desktop]# touch -a -t 201702140300.00 demo
[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 03:00:00.000000000 +0800
Modify: 2017-02-14 02:00:00.000000000 +0800
Change: 2017-02-14 11:32:47.267926266 +0800
[root@localhost Desktop]# touch -m -t 201702140400.00 demo
[root@localhost Desktop]# stat demo
  File: `demo'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 396476      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 03:00:00.000000000 +0800
Modify: 2017-02-14 04:00:00.000000000 +0800
Change: 2017-02-14 11:32:56.385676132 +0800

不过这次access time和modify time的修改没有触发change time的修改,具体不是很清楚

8.stat

显示文件时间戳等信息 三个时间:

  • Access time
  • Modify time
  • Change time
[root@localhost mnt]# stat test
  File: `test'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 396468      Links: 4
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-02-14 06:49:21.209003207 +0800
Modify: 2017-02-14 06:49:21.210003106 +0800
Change: 2017-02-14 06:49:21.210003106 +0800
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值