Linux文件和目录管理

一、目录与路径

绝对路径:一定由根目录/写起

相对路径:不是由根目录/写起,转换路径的时候使用

. 代表当前所在的目录

.. 代表上层目录

-代表前一个工作目录

~代表自己的家目录

~user代表userd的个人的家目录

目录的相关操作和路径变量

(1)cd 变换目录

(2)pwd 显示当前所在的目录

(3)mkdir建立一个新目录

    mkdir[-mp][目录名称]

         参数说明:

    -m:设定档案的权限,直接设定,而不是根据umask来设置目录权限

    -p:递归建立目录

(4)rmdir删除一个里面是空的空目录

    rmdir [-p][目录名称]

    参数说明:

    -p:递归删除上层的空目录

 当删除一个目录下面有目录的目录时,会产生错误。

 如果删除绝对路径,只能删除最下端没有目录的目录

 加-p参数后会递归删除目录

当目录下不为空,存在文件时,递归删除会失败。rmdir递归操作只能针对空目录

(5)环境变量PATH:当我们在执行一个指令的时候,系统会按照PATH定义的路径搜索文档,先搜到的指令档案先被执行。

二、管理文件和目录

管理文件与目录就是"显示属性"、"复制"、"删除文件"以及"移动文件或目录"

ls 显示档案名称、属性等

  • -a全部的档案都列出(连同隐藏档)

  • -A全部文件、与隐藏文件,但不包含.和..这两个文件

  • -d仅列出目录本身,而不是列出目录内的文件数据

  • -f直接列出结果,而不进行排序(ls默认以文件名排序)

  • -F根据文件、目录等信息,附加数据结构。如*表示可执行文件;/表示目录;=表示套接字;I表示FIFO文件-n列出UID与GID,而非用户与用户组的名称-r将排序结果反向输出,例如:原文件名由小到大,反向则由大到小
    • -h列出文件大小(GB、MB、kB)
    • -列出inode的值
    • -l列出长数据串,包含文件属性
    • -n列出UID与GID,而非用户与用户组的名称

  • -R与子目录内容一起列出来
  • -S以档案大小排序
  • -t按时间顺序排列
    • --color==never:不要显示颜色
    • --color==always:均显示颜色
    • --color==auto:由系统自行判断

ls -l会显示文件夹下所有文件占内存总大小

ls -li 会显示单个文件的节点

ls -lh会以人文阅读方式显示文件大小

 ls -lin会列出UID(用户ID)与GID(组ID),而非用户与用户组的名称

 ls -R以目录结构的形式显示文件夹下的组织结构

ls -t以时间顺序排序的组织结构

ls -l --color=never表示不显示颜色

 ls -l --color=always表示总是显示颜色

当输入ls时,默认显示颜色

 ls -l --full-time,长列表显示全部的时间。

cp 拷贝档案

cp[-drsu][源文件][目标文件]

  • -a相当于pdr
  • -d 若源文件为连接文件的属性,则复制连接文件属性而非文件本身
  • -f(force)的意思,若有重复或其他疑问时,不询问用户,而强制复制
  • -i若目标文件已经存在,在覆盖时先询问是否真的操作
  • -l 建立硬连接的文件,而非复制文件本身
  • -p 与文件的属性一起复制,而非使用默认属性
  • -r 递归持续复制,用于目录的复制操作
  • -s 复制成符号连接文件(symbolic link)即快捷方式

cp ~/.bashrc bashrc 从根目录拷贝bashrc到本目录下

 cp  -i ~/.bashrc bashrc 如果已经有了原始文件,询问是否覆盖

 cp -s bashrc bashrc-s 复制一个链接档

cp -l bashrc bashrc-h 建立一个硬链接档

 cp bashrc-s bashrc-s1将链接档复制成为普通文档

 cp -d bashrc-s bashrc-s2 复制链接档为链接档

cp -r /home/* test/递归将/home/*下的所有文件和文件夹复制到test目录下

 可以看到/home下的所有文件夹全部复制到test文件夹下了,但是test1的文件夹属性不相同。

cp -pr /home/* test 将home下的文件以及文件夹连同文件文件夹属性复制到test目录下

cp /var/log/wtmp wtmp 拷贝复制文件夹,如果不加-pr参数会丢失同组用户下的w权限

 cp -a /var/log/wtmp wtmp copy -a可以复制全文件属性

rm 删除档案

rm[-fir][文件名]

  • -f:就是force的意思,强制删除
  • -i:交互模式,在删除前,询问用户是否操作
  • -r:递归删除,常用在目录的删除

rm -i bashrc 删除bashrc,删除前询问是否删除

rm -f bashrc* 强制删除bash开头的文件

删除前

删除后

 rm -rf删除test1

mv 移动档案、重命名档案

mv[-fiu][源文件][目的文件]

  • -f:force,强制的意思,强制直接移动而不询问
  • -i:若目标文件(destination)已经存在,就会询问是否覆盖
  • -u 若目标文件已经存在且源文件比较新,才会更新
  • basename:提取路径的最后一个文件夹或文件名(编程用)。如basename /usr/local/etc
  • dirname:提取最后一个文件名或文件夹前的路径,与basename正好相反

mv test.txt test 剪切test.txt到test目录下

 mv -u test.txt test 更新test.txt到test目录下

mv test.txt test2.txt 文件重命名

 basename /tmp/test/test 提取路径的最后一个文件名或文件夹名

 dirname /tmp/test/test提取路径的最后一个文件名或文件夹名之前的目录

 

三、查看文件内容

cat 由第一行开始显示档案内容

cat[-nAE]

  • -A:相当于-vET的组合参数,可以列出一些特殊字符
  • -E:将结尾的换行符$显示出来(^M$为换行符号,linux以$为换行符号,至于^|则是<tab>按键)
  • -n:显示行号
  • -T:将tab按键以^|显示出来
  • -v:列出一些看不出来的特殊字符

cat test1.txt显示文件中的内容

cat -E test1.txt显示文件内容以及换行符

cat -n test1.txt 显示文件内容以及行号

cat T test1.txt显示Tab

会显示两个Tab键

cat -nTE test1.txt 显示行号、换行符以及Tab键

cat -A test1.txt 显示文件内容

tac 从最后一行开始显示,可以看出tac是cat的倒着写,倒序显示文件内容

tac test1.txt,倒序显示文件内容

nl显示的时候,顺道输出行号

nl[-bnw]文件

  • -b:指定行号指定的方式,主要有两种

    • -b a:表示不论是否有空行,也同样列出行号
    • -b t:如果有空行,空行不要列出行号
  • -n:列出行号表示的方法有三种:

    • -n ln:行号在屏幕最左方显示
    • -n rn:行号在字段的最右方显示,且不加0
    • -n rz:行号在字段的最右方显示,且加0
  • -w:行号字段占用的位数

nl -b a test1.txt 不论是否有空行,同样列出行号

 nl -b t test1.txt 不显示空行行号

 nl -n ln test1.txt 靠左显示行号

 nl -n rn test1.txt 靠右显示行号

nl -n rz test1.txt 靠右补0显示行号

nl -b a -n rn -w 3 test1.txt 指定行号显示无论是否有空行,行号不加0显示,占位符为3

 nl -b a -n rz -w 3 test1.txt 指定行号显示无论是否有空行,行号加0显示,占位符为3

more 一页一页的显示文档内容

less 与more相似,但是比more更好的是,他可以往前翻页

 

head只看头几行

tail只看尾巴几行

od 以二进制的方式读取文档内容

touch 修改文档时间和创建新文件

四、文件和目录的默认权限与隐藏权限

五、搜索文件

posted @   leagueandlegends  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-04-17 SpringBoot(十)----SpringMVC自动配置&扩展配置
点击右上角即可分享
微信分享提示