Linux-命令-文件及目录管理

文章目录

  • 1、pwd
  • 2、ls
  • 3、cd
  • 4、mkdir
  • 5、rmdir
  • 6、touch
  • 7、rm
  • 8、mv
  • 9、cp
  • 10、tree
  • 11、find
  • 12、locate
  • 13、whereis
  • 14、which

1、pwd

  • 全名:print working directory
  • 用途:显示当前目录

2、ls

  • 全名:list

  • 用途:显示当前目录下的信息

  • 常用选项

    ls [选项] [文件或目录]
    
    • -a (all):显示所有文件,包括以.开头的文件
    • -l (long):显示文件详细信息
    • -h (human):人性化显示文件大小,即带单位
    • -i (inode):显示文件或目录的序列号
    • -d (directory):当对目录进行ls命令时,不显示该目录的子目录信息,只显示该目录信息
  • 例子:查看一下根目录下的详细内容

    dream:~ dream$ ls -lh /
    total 28
    drwxrwxr-x+ 78 root   admin   2.4K  2 21 23:06 Applications
    # drwxrwxr-x:总共10位,第一位可能为d|-|l,d表示是一个目录,-表示是二进制文件,l表示是一个软链接
    # 78:是一个计数值,表示该文件或目录的访问次数
    # root admin:第一个(root)表示该文件或目录的所属主(创建者),第二个表示所属组(用户组)
    # 2.4K:文件或目录大小,注意,目录的大小只是该目录的大小,不包括该目录下的子目录和文件
    # 2 21 23:06:上一次修改该文件或目录的时间
    ...
    -rw-r--r--   1 root   wheel   313B  9  1  2017 installer.failurerequests
    ...
    lrwxr-xr-x@  1 root   wheel    11B 11  4  2017 var -> private/var
    # 这是一个软连接的例子,该目录实际是/private/var
    

3、cd

  • 全名:change directory

  • 用途:切换到指定目录

  • 常用选项

    cd <选项或指定目录>
    
    • cd ..:切换到当前目录的上一级目录,...分别表示当前目录和上一级目录
    • cd ~:切换到当前用户的家目录,即/Users/user_name
    • cd -:切换到上一次改变目录前所在目录,连续使用则是在两个目录之前切换
  • 例子:cd -的使用

    dream:~ dream$ pwd
    /Users/dream
    dream:~ dream$ cd ~/Desktop/Source/C
    dream:C dream$ pwd
    /Users/dream/Desktop/Source/C
    dream:C dream$ cd -
    /Users/dream
    dream:~ dream$ cd -
    /Users/dream/Desktop/Source/C
    

4、mkdir

  • 全名:make directory

  • 用途:创建新目录

  • 常用选项

    mkdir [选项] <dir_name>
    
    • -p:创建递归目录
  • 例子:-p选项的作用

    dream:testmk dream$ ls
    dream:testmk dream$ mkdir ./aaa/bbb       # 当前目录下并没有aaa目录,创建失败
    mkdir: ./aaa: No such file or directory
    dream:testmk dream$ mkdir -p ./aaa/bbb		# 使用-p选项,即使没有aaa目录,也能创建成功
    dream:testmk dream$ ls
    aaa
    

5、rmdir

  • 全名:remove directory

  • 用途:删除空目录

  • 常用选项

    rmdir <dir_name>
    
    • 注意,该命令只能删除空目录

6、touch

  • 全名:touch

  • 用途:创建空文件

  • 常用选项

    touch <file_name>
    

7、rm

  • 全名:remove

  • 用途:删除目录或文件

  • 常用选项

    rm [选项] <目录或文件>
    
    • -r:删除目录及该目录下所有内容(递归删除)
    • -f:强制执行,不询问是否删除
  • 有些文件或目录删除时需要权限,在前面加上sudo即可,表示使用root权限执行该命令

  • 注意,使用该命令时一定要小心,不要误删除

8、mv

  • 全名:move

  • 用途:移动文件或目录(也就是剪切),或者可以用于改名

  • 常用选项

    mv <原文件或目录> <目标目录>
    
  • 例子:移动文件

    dream:testmk dream$ mv ./aaa /tmp/aaa
    # 将当前目录下的aaa移动到/tmp下,注意要写全
    
  • 例子:给文件改名

    dream:testmk dream$ ls
    aaa
    dream:testmk dream$ mv ./aaa ./bbb
    dream:testmk dream$ ls
    bbb
    

9、cp

  • 全名:copy

  • 用途:复制文件或目录

  • 常用选项

    cp  [选项] <准备复制的文件或目录> <目标目录>
    
    • -r:复制目录时使用,表示递归复制
    • -p:保留文件属性
  • 例子:

    dream:test dream$ ls
    aaa    bbbdir
    dream:test dream$ cd bbbdir/
    dream:bbbdir dream$ ls
    dream:bbbdir dream$ cp ../aaa ./abc    # 将上一级目录中的aaa复制到当前目录,并改名为abc
    dream:bbbdir dream$ ls
    abc
    

10、tree

  • 全名:tree

  • 用途:以树状图列出指定目录的内容,不知道目录则列出当前目录的内容

  • 常用选项

    tree [选项] [dir_name]
    
    • -s:显示文件大小
    • -h:同ls的-h选项
    • -N:直接列出文件和目录名称,包括控制字符
    • -L n:只查看第几级的内容
  • 例子

    dream:Desktop dream$ tree -sh /tmp
    /tmp
    ├── [   0]  AlTest1.err
    ├── [   0]  AlTest1.out
    ├── [5.2K]  adobegc.log
    ├── [  96]  com.apple.launchd.F0mxz3N6Pd
    │   └── [   0]  Listeners
    ├── [  96]  com.apple.launchd.cyDwU4mOw7
    │   └── [   0]  Render
    ├── [ 106]  com.sangfor.ca.sha
    ├── [  40]  com.sangfor.ca.verification
    ├── [   0]  com.sangfor.lockcert
    ├── [   0]  com.sangfor.lockecagent
    ├── [   0]  mysql.sock
    ├── [   5]  mysql.sock.lock
    ├── [  64]  powerlog
    ├── [ 888]  sangfor.ec.rundata
    └── [1.1K]  stop_easyconnect.sh
    
  • 例子:只查看第1级的内容

    dream:Desktop dream$ tree -N -L 1 /
    /
    ├── Applications
    ├── Library
    ├── Network
    ├── System
    ├── Users
    ├── Volumes
    ├── anaconda3
    ├── bin
    ├── cores
    ├── dev
    ├── etc -> private/etc
    ├── home
    ├── installer.failurerequests
    ├── net
    ├── private
    ├── sbin
    ├── tmp -> private/tmp
    ├── usr
    └── var -> private/var
    

11、find

  • 全名:find

  • 用途:搜索文件或目录

  • 常用选项

    find <搜索范围> <匹配条件>
    
    • -name:根据文件名搜索,区分大小写,精确搜索

      • *匹配任意字符串,?匹配一个字符
      • find / -name *in:表示在/目录下搜索以in开头的文件或目录
    • -iname:同-name,但是不区分大小写

    • -size:根据文件大小搜索

      • +n:大于n个数据块的文件或目录(一个数据块=2KB)

      • -n:小于n个数据块的文件或目录(不用+/-表示正好等于)

    • -user:根据所有者搜索文件或目录

    • -group:根据所属组搜索文件或目录

    • -amin, -cmin, -mmin:根据文件或目录被修改的时间搜索

      • -amin(access):访问时间
      • -cmin(change):文件属性被改变
      • -mmin(modify):文件内容被改变
      • find / -amin +5:搜索在/目录下的,且5分钟之前(-表示过去5分钟内)被访问过的文件或目录
    • -type:根据文件类型搜索文件或目录,可以指定为f(文件)d(目录)l(软链接)

    • -inum:根据i节点搜索文件或目录(可用于查找硬链接)

    • -a(and), -o(or):关系运算与/或

      • find / -name *int* -a -size +10 :表示查找同时满足名字条件和大小条件的文件或目录
    • -exec|-ok [命令] {} \:表示对搜索结果做操作,最后跟着的是{} \;要严格按照格式书写

  • 例子:find命令对搜索结果做操作

    dream:test dream$  find . -type f -exec ls -l {} \;
    									# 在当前目录下搜索类型为文件的内容,并对搜索结果使用ls命令
    -rw-r--r--  1 dream  wheel  0  2 22 22:55 ./aaa
    -rw-r--r--  1 dream  wheel  0  2 22 22:55 ./bbbdir/abc
    

12、locate

  • 全名:locate

  • 用途:在资料库中搜索文件

    • find是通过遍历硬盘分区搜索
    • locate是通过在一个资料库(数据库)中搜索,locate速度比find快
  • 常用选项

    locate <文件名>
    
  • 补充:

    • locate是通过数据库搜索,而数据库是定时更新,所以新添加的文件可能会搜索不到,可以使用updatedb更新数据库
    • 使用mac 系统的小伙伴注意,mac系统没有update命令,而是/usr/libexec/locate.updatedb(如果没有配置需要使用绝对路径,使用该命令会重启系统)
    • 有些目录不在数据库中,如/tmp

13、whereis

  • 全名:where is
  • 用途:搜索命令所在路径帮助文档路径
dream:Desktop dream$ whereis python
/usr/bin/python

14、which

  • 全名:which
  • 用途:搜索命令所在目录及别名信息
dream:Desktop dream$ which -a python		# -a选项表示显示所有
/anaconda3/bin/python
/usr/bin/python
dream:Desktop dream$ which python				# 不加-a只会显示一个
/anaconda3/bin/python
  • 参考教程
  • B站:兄弟连视频

你可能感兴趣的:(Linux)