Linux 文件与目录

420 阅读3分钟

文件及其操作

Linux文件类型:

表示名称解释
-regular file普通文件,或称正规文件
ddirectory目录
lsymbolic link 1⃣️符号(软)连接
bblock块特殊文件:一般是指块设备,如硬盘。
ccharacter字符特殊文件:一般是指字符设备,如键盘。
ppipe命名的管道文件:一般用于在进程之间传输数据。
ssocket 2⃣️套接字:通信(过程中)的一个终点。

1⃣️ 关于 Link本系列文章后面有专门的介绍,TODO:这里之后再补链接.

2⃣️ socket 的解释: socket与电话十分相似:

  • 当与某人通话时就要建立两个通信的终点:

    1. 自己的电话
    2. 对方的电话
  • 只要双方进行通话,就必须有两个通话所必需的终点(电话)和一条在它们之间的通信线路存在。

    • socket就相当于一条通信线路的终点(电话),而在这些终点(sockets)之间存在着数据通信网络。
  • 当打电话给他人时,需要拨打对方的电话号码。

    • sockets 使用网络地址取代了电话号码。通过访问远程(计算机)的socket地址,本机程序就可以用的本机socket与远程的终点(socket)之间建立起一条通信线路。

文件操作

  • file:确定文件类型
$ file 文件名
  • touch:刷新、新建文件
$ touch file(s)
        若file存在,更新时间戳
        若file不存在,新建空文件
  • cp:复制
$ cp [-option(s)]  source(s)  target
    把source复制到target:
        -i:交互式:防止覆盖,覆盖前提示
        -f:强制式:有同名,强制覆盖,不提示
        -r:递归式:复制目录时包括子目录
        -p:维持式:保留属性(如时间戳)
        source是目录名或文件名
        target是目录名或 新文件名(复制并重命名)
  • mv:移动及修改文件、目录名
$ mv file(s) target
    把source移动到target:
        source是目录名或文件名
        target是目录名或 新文件名(移动并重命名)

重命名可用 mv  path/old_name  path/new_name 实现

  • rm:删除
$ rm  [option(s)]  file(s)|directory(s)
    删除文件或 目录(加-r):
        -i:交互式:删前提示
        -r:递归式:包括子目录、文件
        -f:强制性:不询问,直接删
  • find:搜索文件和目录
$ find Pathname Expressions Actions
    •Pathname:遍历起始路径
    •Expressions:条件表达式:
        -name“指定文件名”
        -size[+|-]n
                文件大小大于小于或等于(n*512B)
        -atime[+|-]n
                访问天数
        -mtime[+|-]n:更改天数
        -user LoginID:属于某用户的所有文件
        -type:某一类型的文件:
                f:文件
                d:目录
                e t c
        -perm:查找具有某些特定访问许可位的文件
    •Actions:对找出的文件进行的操作:
        -exec命令{} \;
                在每一个所定位的文件上运行指定的命令。
                “{}“  表明文件名将传给前面的命令。
                “ \;” 表示命令的结束。
                (在大括号与反斜线之间必须有一个空格。)
        -ok命令{} \;
                -exec命令的交互方式
                (在find命令对每个定位的文件执行命令之前需要确认)
        -print
                指示find命令将当前的路径名打印在终端屏幕上
                (默认方式)
        -ls
                显示当前路径名和相关的统计信息
                如i节点(inode)数、以K字节为单位的大小(尺寸)、保护模式、硬连接和用户

可用 find /etc -name passwd  2>finderrs.txt 重定向,把权限不足的错误不在屏幕显示。

目录及其操作

几个特殊目录

目录作用
/根目录
~(==$HOME)家目录 1⃣️
.当前目录
..上一层目录

以' . '开头的文件或目录表示隐藏;

1⃣️ 家目录: 普通用户的家目录为 /home 的子目录,root的是 /root

  • 代表当前用户的家目录,

  • ~username 代表某用户的家目录。

登录系统或重启 shell后默认的 pwd$(whoami)$HOME

与程序相关的几个目录:

目录功能
/bin存放可执行文件
/sbin存放系统可执行文件
/usr (Unix System Resources)存放系统的应用程序和与命令相关的系统数据(类似于 Windows 的 C:\Program File

目录操作

  • $ pwd: 打印工作(当前)目录的绝对路径

  • $ cd path: 切换工作目录

    • cd ~ == cd无参:切换到 $HOME
    • cd -:切换到上一工作目录
  • ls

$ ls [keyword]
    无keyword:列出当前目录下内容
    有keyword:列出目录中名含keyword的内容
    
$ ls dirA dirB
    同时显示dirA与dirB中的内容
    
$ ls -F
    显示 文件类型 1⃣️

$ ls -a
     == “ls --all”
    显示正常、隐藏文件

$ ls -l
    列出文件详细信息(其中大小为字节)
    再加上-h:大小以惯例表示

$ ls -d
    只列出当前目录的信息,不包含子目录下的信息

1⃣️ 文件类型:参考前文中关于“Linux文件类型”的介绍。

  • mkdir
$ mkdir 目录名
    创建目录

$ mkdir -p 命令名
    创建目录(补足不存在的路径)
  • rmdir:删除目录