二、Linux文件、目录操作命令的讲解

一、命令格式与目录处理命令ls

 命令格式:命令 [-选项] [参数]

        例如:ls -la /root

        说明:1.个别命令可能不遵守上述格式

                   2.当有多个选项时,可以写在一起。

                   3.简化选项和完整选项等价,例如:-a 等价于 --all

二、目录处理命令

ls

命令名称:ls

命令英文原意:list

命令所在目录:/bin/ls

执行权限:所有用户

功能描述:显示目录文件

语法:ls 选项[-ald] [文件或者目录]

常用参数:

 -a显示所有文件, 包括隐藏文件
 -l 详细信息显示
-d查看目录属性
-h将文件大小的字段进行换算

mkdir

命令名称:mkdir

命令英文原意:make directories

命令所在目录:/bin/mkdir

执行权限:所有用户

功能描述:创建目录

语法:mkdir [-p] [目录名]

                -p:递归创建

举例:

# 有一个“胖太乙” 文件夹
[root@TR ~]# ll
drwxr-xr-x 2 root      root      4096 Jan  8 22:52 胖太乙

# 在“胖太乙”下创建一个“胖太乙1”, 在“胖太乙1”下创建一个“胖太乙2”(一次创建)
[root@TR ~]# mkdir /root/胖太乙/胖太乙1/胖太乙2
mkdir: cannot create directory ‘/root/胖太乙/胖太乙1/胖太乙2’: No such file or directory
[root@TR ~]# 

可以看到, 如果 mkdir 不加任何参数, 上述的创建会有问题, 会提示没有这样的目录, 那是因为“胖太乙1”文件夹不存在, 所以这种情况下如果需要创建文件夹, 需要使用参数 -p”。

[root@TR ~]# mkdir -p /root/胖太乙/胖太乙1/胖太乙2
[root@TR 胖太乙]# tree /root/胖太乙
/root/胖太乙
├── 胖太乙.txt
├── 胖太乙1
│   ├── 胖太乙2
└── 胖太乙3

cp

命令名称:cp

命令英文原意:copy

命令所在目录:/bin/cp

执行权限:所有用户

功能描述:复制文件或目录

语法:cp [-rp] [源文件或目录] [目标目录]

                -r:复制目录

                -p:保留文件属性

 举例:

# 1.将“胖太乙.txt” 文件复制到 “胖太乙1”文件夹下
[root@TR 胖太乙]# ll
total 4
-rw-r--r-- 1 root root    0 Jan  8 23:09 胖太乙.txt
drwxr-xr-x 3 root root 4096 Jan  8 23:00 胖太乙1
[root@TR 胖太乙]# cp 胖太乙.txt 胖太乙1/
[root@TR 胖太乙]# mkdir 胖太乙3 
[root@TR 胖太乙]# ll
total 8
-rw-r--r-- 1 root root    0 Jan  8 23:09 胖太乙.txt
drwxr-xr-x 3 root root 4096 Jan  8 23:10 胖太乙1
drwxr-xr-x 2 root root 4096 Jan  8 23:10 胖太乙3
[root@TR 胖太乙]# cp 胖太乙3 胖太乙1/
cp: -r not specified; omitting directory '胖太乙3'
[root@TR 胖太乙]# cp -r  胖太乙3 胖太乙1/

[root@TR 胖太乙]# tree /root/胖太乙
/root/胖太乙
├── 盘太乙.txt
├── 胖太乙1
│   ├── 盘太乙.txt
│   ├── 胖太乙2
│   └── 胖太乙3
└── 胖太乙3

 如果仔细观察, 可以看到, 当一个文件被拷贝到其它位置的时候, 日期会有变化, 会变成当前“cp” 命令执行的时间,如果想拷贝文件的时候, 连同时间一起拷贝过来,就需要使用 “-p” 选项。这里就不在演示了。

mv

命令名称:mv

命令英文原意:move

命令所在目录:/bin/mv

执行权限:所有用户

功能描述:剪切文件、改名

语法:mv [源文件或目录] [目标目录]

 rm

命令名称:rm

命令英文原意:remove

命令所在目录:/bin/rm

执行权限:所有用户

功能描述:删除文件

语法:rm [-rf] [文件或目录]

                -r:删除目录

                -f:强制执行

举例:

# 在用户家目录有一个 "demo1"文件夹, 该文件夹下还有一个文件
[root@TR ~]# ll
drwxr-xr-x 2 root      root      4096 Jan  6 19:59 demo1

# 删除 “demo1”目录, 使用“-r” 会每删除一个就会提示一下。
[root@TR ~]# rm -r demo1
rm: descend into directory 'demo1'? y
rm: remove symbolic link 'demo1/链接文件'? y
rm: remove directory 'demo1'? y

 如果上述命令加上“-f”选项,就无须确认, 直接强制删除。

注:在工作中千万不要使用 “rm -rf /*” 命令, 这个命令的含义是强制删除根目录下的所有文件。如果你真的这么干了, 那么一副银手镯送给你。

三、文件处理命令

touch

命令名称:touch

命令所在目录:/bin/touch

执行权限:所有用户

功能描述:创建空文件

语法:touch [文件名]

cat

命令名称:cat

命令所在目录:/bin/cat

执行权限:所有用户

功能描述:显示文件内容

语法:cat [-n] [文件名]

              -n:显示行号

举例:

# 查看文件内容
[root@TR ~]# cat file1
姓名:胖太乙
年龄:1000
性别:男

# 查看文件内容,并且显示行号
[root@TR ~]# cat -n file1
     1	姓名:胖太乙
     2	年龄:1000
     3	性别:男
     4	
[root@TR ~]# 

tac

命令名称:tac

命令所在目录:/usr/bin/tac

执行权限:所有用户

功能描述:显示文件内容(反向显示)

语法:tac [文件名]

举例:

# 正序显示
[root@TR ~]# cat file1
姓名:胖太乙
年龄:1000
性别:男

# 倒序显示
[root@TR ~]# tac file1
性别:男
年龄:1000
姓名:胖太乙

more 

命令名称:more

命令所在目录:/bin/more

执行权限:所有用户

功能描述:分页显示文件内容

语法:more [文件名]

                (空格)或 f:翻页

                (enter): 换行

                q 或者Q :退出

less

命令名称:less

命令所在目录:/usr/bin/less

执行权限:所有用户

功能描述:分页显示文件内容(向上翻页)

语法:less [文件名]

ln

命令名称:ln

命令英文原意:link

命令所在目录:/bin/ln

执行权限:所有用户

功能描述:生成链接文件

语法:ln -s [源文件] [目标 文件]

                -s:创建软链接(不加`-s`是创建硬链接)

举例:

[root@TR ln]# ll
total 8
-rw-r--r-- 1 root root 6358 Jan  9 12:29 ln.txt

# 1.创建软链接
[root@TR ln]# ln -s ln.txt ln.soft

# 2.创建硬链接
[root@TR ln]# ln ln.txt ln.hard

[root@TR ln]# ll
total 16
-rw-r--r-- 2 root root 6358 Jan  9 12:29 ln.hard
lrwxrwxrwx 1 root root    6 Jan  9 12:30 ln.soft -> ln.txt
-rw-r--r-- 2 root root 6358 Jan  9 12:29 ln.txt
[root@TR ln]# 

可以看到,同一个文件,创建软链接硬链接所展示出来的内容是不一样的。 两者有一下几点不同。

  1. 文件类型不同,我们在第一章讲到过(不清楚的小伙伴可以去看下一、Linux 文件以及目录的讲解),“-”代表的是普通文件, “l”代表的是链接。
  2. 文件权限不一样,软链接的权限是所有者, 所属组,其它人都是“rwx”,而硬链接则是和源文件的权限一直。(权限的章节后续会讲道,请关注收藏。
  3. 软链接的文件链接数是1, 而硬链接文件链接数是2。
  4. 软链接的文件大小则要小于源文件的大小, 硬链接则是相同。
  5. 软链接的文件名“ln.soft -> ln.txt” 指向了源文件路径。而硬链接则没有

总结:其实我们可以将软链接理解成 windows中的快捷方式,软链接只是一个指向原路径的一个快捷方式。所以软链接的文件大小要远远小于源文件的大小。而硬链接则可以连接成“cp” 的复制命令。那么有些小伙伴就要问了, 既然有了“cp” 复制命令, 为什么还需要硬链接。那是因为硬链接和复制又有一些不同之处。 下面就让我们看下硬链接和复制有什么不同吧。

# 1. 我们先看下 “ln.txt” 文件的内容
[root@TR ln]# cat ln.txt
姓名:胖太乙

# 2. 往“ln.txt” 文件追加 “年龄:1000”内容
[root@TR ln]# echo "年龄:1000" >> ln.txt
[root@TR ln]# cat ln.txt
姓名:胖太乙
年龄:1000

# 3.看下硬链接的内容变化,可以看到硬链接的内容也跟着变了
[root@TR ln]# cat ln.hard
姓名:胖太乙
年龄:1000

# 问: 如果我们改变硬链接的内容, 源文件的内容会跟着变化吗?
# 那我们试一下吧!

# 1. 改变“ln.hard”的内容
[root@TR ln]# echo "性别:男" >> ln.hard
[root@TR ln]# cat ln.hard 
姓名:胖太乙
年龄:1000
性别:男

# 2. 查看源文件的内容变化
[root@TR ln]# cat ln.txt
姓名:胖太乙
年龄:1000
性别:男
[root@TR ln]# 

结论:

  1. 硬链接和“cp” 复制的相同之处是, 两者都是复制。
  2. 但是硬链接的模式是“cp -p + 同步更新” , 而复制则是“cp -p”。 不管是改变硬链接的原文件内容,亦或者是改变硬链接文件的内容, 硬链接和源文件的内容都会同步变化。而复制则不具备这种功能。
  3. 硬链接不能跨分区
  4. 硬链接不能针对目录使用。

扩展:tree

推荐安装 tree , 可以查看指定目录的树形结构, 比较好用。

# 1.命令
yum install tree -y


# 安装
[root@TR ~]# yum install tree -y
Last metadata expiration check: 1:51:42 ago on Sat 08 Jan 2022 09:32:40 PM CST.
Package tree-1.7.0-15.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@TR ~]# 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖太乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值