[Linux] 命令行管理文件
目录
FHS
文件路径导航
ls命令
tree命令
stat命令
touch命令
命令行管理文件
mkdir命令
cp命令
mv命令
rm和rmdir命令
软链接
硬链接
软连接硬链接区别
shell扩展匹配文件
FHS
FHS采用树形结构组织文件,定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS定义了两层规范:
-
定义了/下面的各个目录应该要放什么文件数据。例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。
-
针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。
文件路径导航
- 显示当前工作目录
pwd
- 切换路径
cd
- 切换到上一次所在目录
cd -
- 切换到家目录
cd
#或
cd ~
-
上一级目录
-
用
..
表示
- 在变量定义文件的路径时,尽量使用绝对路径
ls命令
- -1:以单列格式展示
- -R:递归查看子目录中文件
- -l:长列表格式查看文件详细信息
- ls命令默认按文件名先后顺序正向排序,使用-r选项可以反向排序,-t按时间排序
- -d:只查看对象本身
tree命令
安装tree工具
yum install -y tree
使用tree
tree /etc/yum
- 控制查看深度
tree -L 2 /home
stat命令
查看文件的元数据属性
stat /etc/fstab
touch命令
如果文件不存在,则创建文件。当使用-c选项时,如果文件不存在,则不会创建文件。
其余选项可通过touch --help
查看
命令行管理文件
mkdir命令
创建目录。用-p选项可以创建多层目录
cp命令
- 复制单个文件到目标位置
- 复制并重命名
cp /etc/hosts ./hosts-1
注意:
-
若当前目录下有同名文件,不会提示,直接覆盖。
-
复制多个文件时,目标只能是目录
- -r:复制目录
-
复制多个目录,目标必须是已经存在的目录
-
当前目录下有同名目录,则将源目录放到相同目录下面,而不是覆盖当前目录
mv命令
- 移动单个文件
mv hosts-1 ../lab1
移动多个文件,目标位置只能是目录
- 重命名
mv hosts hosts-new
- 移动单个或多个目录
#移动单个
mv etc ../lab1#移动多个
mv home/ yum/ yum-1/ ../lab1
rm和rmdir命令
- 删除文件
rm hosts-new
-f选项可直接删除
- rmdir可删除空目录,但无法删除非空目录
-r选项可递归删除目录,-fr:递归强制删除目录
软链接
- 软链接: 类似于windows中快捷方式,也是一种文件;用于存放源文件的路径(位置+名字),应用最多.
查看链接文件
ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Mar 7 2024 /etc/rc.local -> rc.d/rc.local
rc.d/rc.local的位置在/etc/rc.d/rc.local 可以打开/etc/rc.local文件查看到
-
ln
(link)创建软连接或硬链接,默认创建硬链接. -
创建软连接 :
ln -s
源文件 软链接文件
#准备新的环境 new目录
mkdir -p /dir0/new
cd /dir0/new/
#创建源文件
touch test.txt
[root@boot new]# ll
total 0
-rw-r--r--. 1 root root 0 Nov 17 14:01 test.txt
#创建软连接
[root@boot new]# ln -s test.txt stest.txt
[root@boot new]# ll
total 0
lrwxrwxrwx. 1 root root 8 Nov 17 14:06 stext.txt -> test.txt#可以发现软连接指向源文件
-rw-r--r--. 1 root root 0 Nov 17 14:01 test.txt
#从源文件位置写入内容
[root@boot new]# echo 'aaa' >> test.txt
[root@boot new]# cat stext.txt
aaa
[root@boot new]# cat test.txt
aaa
#从软连接位置写入内容
[root@boot new]# echo 'bbb' >> stext.txt
[root@boot new]# cat stext.txt
aaa
bbb
[root@boot new]# cat test.txt
aaa
bbb
#建议使用绝对路径创建软连接
#创建绝对路径的软连接
ln -s /dir0/new/test.txt stest.txt
#因为这样链接文件即使移动后能被找到,可以移动stest.txt试试
如果源文件被删除或改名或移动走,软连接会如何? 答:会红色闪烁
硬链接
- 硬链接: 在同一个分区中,不同的文件的inode号码相同了,这些文件互为硬链接,很少使用.
硬链接
#创建新的实验文件ytest.txt
[root@boot new]# touch ytest.txt
#给新文件创建硬链接
[root@boot new]# ln ytest.txt ytest.txt_head
[root@boot new]# ll
#可以发现硬链接并没有显示l,我们可以发现ytest.txt与ytest.txt_head硬链接数量变为2了
total 4
-rw-r--r--. 1 root root 8 Nov 17 14:07 test.txt
-rw-r--r--. 2 root root 0 Nov 17 14:18 ytest.txt
-rw-r--r--. 2 root root 0 Nov 17 14:18 ytest.txt_head
#可以通过ll -i 查看,发现两个文件inode是相同的
[root@boot new]# ll -i
total 4
13662 -rw-r--r--. 1 root root 8 Nov 17 14:07 test.txt
13664 -rw-r--r--. 2 root root 0 Nov 17 14:18 ytest.txt
13664 -rw-r--r--. 2 root root 0 Nov 17 14:18 ytest.txt_head
#再通过两个文件中分别加入内容是与软链接的效果一致的
软连接硬链接区别
-
解释
-
软连接(符号链接) softlink/symlink,类似于windows快捷方式,存放源文件的位置。
-
硬链接: 同一个分区中inode号码相同的文件,互为硬链接。
-
创建
-
软连接通过ln -s创建
-
硬链接通过ln创建。
-
特点
-
软链接是比较常用的,可以给文件,目录创建。
-
硬链接只能给文件创建,不能跨分区,无法给目录创建硬链接,较少使用。