前言
一、mkdir命令
用法:mkdir [选项]... 目录位置及名称...
,若指定目录不存在则创建目录。
选项 | 说明 |
---|---|
-p | 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理 |
-m | 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask |
-v | 每次创建目录,并显示详细信息 |
-Z | 将每个创建的目录的SELinux 安全环境设置为CTX |
例如:
1 . [root@duan ~]# mkdir abc
,在当前目录创建目录abc。
2 . [root@duan ~]# mkdir -p /aa/bb/cc
,在/根目录创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc。
3 . 在当前目录批量创建目录
命令:mkdir -pv {al,bl}/{cl,dl}
,创建 al、bl 目录,并在这两个目录下各创建 cl、dl目录。
例:mkdir -p /ms/{sales,hr,web} #创建一个名为/ms的目录,其中有sales、hr、web的子目录
二、touch命令
功能:
- 将文件的访问时间和修改时间更新为当前时间;
- 经常用创建多个新的空文件
touch test.txt #将test.txt 的时间改为当前时间,文件不存在则新建
touch -c -t 04041818 test.txt #将文件档案时间改为,4月4日18点18分
touch -r test.txt file.txt #将file.txt的时间改成和test.txt的一样
#批量创建文件
touch {a,b,c}.txt
touch {0..9}.txt
三、ln命令
ln - 为文件或目录创建链接文件,在文件之间建立连接。
链接文件类型:
- 软链接(符号链接)(symbolic link)
- 硬链接(hard link)
知识点:
- 在Linux中,文件名和文件类型是分开存储的,
- 在Linux中,只有文件的
硬链接数==0
才会被删除 - 使用
ls -l
可以查看一个文件的硬链接数量 - 在日常工作中,几乎不会创建文件的硬链接,只有超级用户才能建立目录的硬连接。
3.1 软/硬链接
Linux/Unix 档案系统中,所谓的链接(link),我们可以将其视为档案的别名,硬链接的意思是一个档案可以有多个文件名(一个文件可以有好几个文件名,只有将最后一个文件名从 磁盘上删除,才能把这个文件删掉);而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个档案系统中,而软链接却可以跨越不同的档案系统。
不论是硬链接或软链结都不会将原本的档案复制一份,只会占用非常少量的磁盘空间。
ln 在文件间产生连接。默认产生硬链接,有-s选项,则产生软链接。
文件类型 | 软连接文件 | 硬连接文件 |
---|---|---|
删除源文件后 | 失效 | 仍然可用(文件占用空间与源文件相同) |
使用范围 | 适用于文件或目录 | 仅适用于文件 |
保存位置 | 与源文件可在不同的文件系统中 | 必须与源文件在同一个文件系统(如同一个分区)中 |
与源文件的关系 | 相当于快捷方式 | 相当于给文件起个别名 |
inode号码 | inode号码不同 | inode号码相同 |
创建硬链接:ln 源文件 目标位置
选项:
-f : 链结时先将与 dist 同档名的档案删除,强制建立链接
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
Linux中 文件名和文件的数据是分开存储的;
3.2 软链接详解
格式: ln [-s] 源文件或目录名... 链接文件或目标位置
比如:有 /root/aa/bb 目录结构,aa中有 test.txt,在bb中执行 ln -s /root/aa/test.txt linkt.txt
,此时执行 ls -l
发现当前目录会多一条软链接,执行cat linkt.txt
内容和源文件一样。
如果修改 linkt.txt 的内容,test.txt 内容也会变化。
软链接的源地址尽量使用绝对路径,防止软链接文件位置变化的时候,找不到源文件。(如源文件执行 mv test.txt ../
后,软链接变红闪烁的时候说明软链接找不到源文件)
四、cp命令
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录。
cp[选项]...源文件或目录.…目标文件或目录...
常用选项:
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,而直接强制复制。 |
-i | 覆盖目标同名文件或目录时提醒用户确认。 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变(默认权限属主是变化的)。 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录。 |
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。
cp -p test.rb /home/test #将test.rb copy到test目录,并且保留原文件的属性
cp -p test.rb /home/test/haha.rp #将test.rb copy到test目录,并将文件名修改为haha.rp
cp -r Dir/ /home/test #将Dir目录copy到test目录下
cp -fr Dir/* /home/test #将Dir下面的所有文件强制copy到test目录下
cp /root/{1,2,3}.txt ./ #批量复制三个同扩展文件到当前目录
cp test.rb{,.bak} #备份test.rb,并在尾部加上.bak后缀
五、rm命令
rm 删除 (unlink) 文件,常用选项:
选项 | 说明 |
---|---|
-f | 删除文件或目录时不进行提醒,而直接强制删除。 |
-i | 删除文件或目录时提醒用户确认。( y表示删除,n表示不删除) |
-r | 删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。 |
如:
rm test.php #删除文件需要确认
rm -f test.php #强制删除文件不确认
rm -rfv ./test #递归强制删除当前的test目录,并显示删除的详细过程
rm -rf aa/ #递归强制删除aa目录下的所有
注意:
- 删除文件可以直接使用 rm 命令,若删除目录则必须配合选项 " -r ",因为目录下有
. 和 ..
两个隐藏子目录; - 不要直接删除系统中已有的目录或配置文件,以避免出现意外故障;
- 删除目录下文件时建议最好先切换到目录下再执行 rm -rf 命令 ( 1 .
cd aa
2 .rm -rf aa/
)
六、mv命令
mv 移动文件或目录、对单个文件进行重命名。
格式:mv [选项] 源文件或目录 目标文件或目录
- 将指定的文件或目录转移位置;
- 如果目标位置与源位置相同,则相当于重命名操作。.
操作实例:
1 . 移动 父级目录中的 bao.txt 文件,到当前文件夹:
2 . 重命名:mv a.txt b.txt
3 . 移动并且重命名:
mv 1.txt /root/aa/2.txt #移动后文件名变成 2.txt
七、rename
使用 rename 批量修改文件名:
格式:rename 旧字符 新字符 文件名
格式:rename 旧文件 新文件 目标文件
如:rename jpg txt *.jpg
rename abc def abc # 修改 abc 名字为 dec