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

来源:互联网 发布:淘宝童装一件代理货源 编辑:程序博客网 时间:2024/06/07 07:23

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/zmkdir: cannot create directory `x/y/z': No such file or directory

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

[root@localhost ~]# mkdir -p x/y/z[root@localhost ~]#[root@localhost ~]# tree xx└── y    └── z2 directories, 0 files
  • -v: 显示创建过程
[root@localhost ~]# mkdir -pv m/n/qmkdir: 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 demodemo├── a1│   ├── b1│   └── b2├── a2│   ├── b1│   └── b2└── demoFile6 directories, 1 file

删除文件demoFile

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

强制删除文件:

[root@localhost ~]# touch demo/demoFile[root@localhost ~]# tree demodemo├── a1│   ├── b1│   └── b2├── a2│   ├── b1│   └── b2└── demoFile6 directories, 1 file[root@localhost ~]# rm -f demo/demoFile[root@localhost ~]# tree demodemo├── a1│   ├── b1│   └── b2└── a2    ├── b1    └── b26 directories, 0 files

递归删除文件夹:

[root@localhost ~]# rm -rf demo/a1[root@localhost ~]# tree demodemo└── a2    ├── b1    └── b23 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 aa├── b1│   ├── c1│   └── c2└── b2    ├── c1    └── c2

删除目录a/b1/c1:

[root@localhost ~]# rmdir a/b1/c1[root@localhost ~]# tree aa├── b1│   └── c2└── b2    ├── c1    └── c25 directories, 0 files

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

[root@localhost a]# rmdir -p a/b1/c2rmdir: failed to remove directory `a': Directory not empty[root@localhost a]# tree aa└── b2    ├── c1    └── c23 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]# lsdemo[root@localhost Desktop]#

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

[root@localhost Desktop]# stat demo  File: `demo'  Size: 0           Blocks: 0          IO Block: 4096   regular empty fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 11:04:18.276667822 +0800Modify: 2017-02-14 11:04:18.276667822 +0800Change: 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 fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 11:04:31.932276861 +0800Modify: 2017-02-14 11:04:18.276667822 +0800Change: 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 fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 11:04:31.932276861 +0800Modify: 2017-02-14 11:06:27.727052949 +0800Change: 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 fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 11:30:30.000000000 +0800Modify: 2017-02-14 11:30:30.000000000 +0800Change: 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 fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 03:00:00.000000000 +0800Modify: 2017-02-14 02:00:00.000000000 +0800Change: 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 fileDevice: fd00h/64768d    Inode: 396476      Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 03:00:00.000000000 +0800Modify: 2017-02-14 04:00:00.000000000 +0800Change: 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   directoryDevice: fd00h/64768d    Inode: 396468      Links: 4Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2017-02-14 06:49:21.209003207 +0800Modify: 2017-02-14 06:49:21.210003106 +0800Change: 2017-02-14 06:49:21.210003106 +0800
0 0
原创粉丝点击