04文件目录管理命令
1. touch 命令
touch 命令用于创建空白文件或设置文件的时间,格式为“touch [选项][文件]”。
-a 仅修改“读取时间” (atime)
-m 仅修改“修改时间” (mtime)
-d 同时修改 atime 和 mtime
#使用touch -d 命令将修改后的文件的时间设置成修改前的时间(很多黑客就是这样做的)
[root@bogon 0607]# ls -l a.txt
-rw-r--r--. 1 root root 8 Jun 7 17:02 a.txt
[root@bogon 0607]# echo "huhuhuhuhuhuhhuhuhuuhuuhuuu" >> a.txt
[root@bogon 0607]# ls -l a.txt
-rw-r--r--. 1 root root 36 Jun 7 17:35 a.txt
[root@bogon 0607]# touch -d "2018-06-07 17:02" a.txt
[root@bogon 0607]# ls -l a.txt
-rw-r--r--. 1 root root 36 Jun 7 17:02 a.txt
2. mkdir 命令
mkdir 命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
在 Linux 系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外,mkdir 命令还可以结合-p 参数来递归创建出具有嵌套叠层关系的文件目录。
[root@bogon hk]# mkdir 0608
[root@bogon hk]# cd 0608
[root@bogon 0608]# mkdir -p a/b/c
[root@bogon 0608]# cd a
[root@bogon a]# cd b
[root@bogon b]#
3. cp 命令
cp 命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
#普通文件的复制
[root@bogon 0608]# cp test1.txt test1_copy.txt
[root@bogon 0608]# ls
a test1_copy.txt test1.txt
# 目录文件的复制 -r 参数表示递归复制 -v表示显示复制过程
[root@rockman hk]# ls
0607 0608 0611 0612 0613 0614 test workdir
# 将目录0614及该目录下的所有文件全部复制到0614_c目录下(该目录也是新创建的)
[root@rockman hk]# cp -rv 0614 0614_c
‘0614’ -> ‘0614_c’
‘0614/openman.txt’ -> ‘0614_c/openman.txt’
‘0614/practice.txt’ -> ‘0614_c/practice.txt’
‘0614/abc.txt’ -> ‘0614_c/abc.txt’
‘0614/bbb.txt’ -> ‘0614_c/bbb.txt’
‘0614/ccc.txt’ -> ‘0614_c/ccc.txt’
‘0614/aaa.txt’ -> ‘0614_c/aaa.txt’
‘0614/example.sh’ -> ‘0614_c/example.sh’
‘0614/findtest’ -> ‘0614_c/findtest’
‘0614/findtest/aaa.txt’ -> ‘0614_c/findtest/aaa.txt’
‘0614/findtest/a.txt’ -> ‘0614_c/findtest/a.txt’
‘0614/findtest/aa.txt’ -> ‘0614_c/findtest/aa.txt’
‘0614/test’ -> ‘0614_c/test’
‘0614/test/560_file’ -> ‘0614_c/test/560_file’
‘0614/test/aaa.txt’ -> ‘0614_c/test/aaa.txt’
‘0614/test/a.txt’ -> ‘0614_c/test/a.txt’
‘0614/test/aa.txt’ -> ‘0614_c/test/aa.txt’
[root@rockman hk]# ls
0607 0608 0611 0612 0613 0614 0614_c test workdir
4. mv 命令
mv 命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。
如果 在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名。
[root@bogon 0608]# mv test1.txt TEXT1.txt
[root@bogon 0608]# ls
a test1_copy.txt TEXT1.txt
5.rm 命令
rm 命令用于删除文件或目录,格式为“rm [选项] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可以在 rm 命令后跟上 -f 参数来强制删除。
另外,想要删除一个目录,需要在 rm 命令后面接一个 -r 参数才可以,否则删除不掉。
#删除文件(加-f参数不询问直接删除)
[root@bogon 0608]# ls
a test1_copy.txt TEXT1.txt
[root@bogon 0608]# rm test1_copy.txt
rm: remove regular empty file ‘test1_copy.txt’? y
[root@bogon 0608]# ls
a TEXT1.txt
[root@bogon 0608]# rm -f TEXT1.txt
[root@bogon 0608]# ls
a
#删除目录(加-r参数删除目录)
[root@bogon 0608]# rm a
rm: cannot remove ‘a’: Is a directory
[root@bogon 0608]# rm -r a
rm: descend into directory ‘a’? y
rm: descend into directory ‘a/b’? y
rm: remove directory ‘a/b/c’? y
rm: remove directory ‘a/b’? y
rm: remove directory ‘a’? y
[root@bogon 0608]# ls
[root@bogon 0608]#
#直接删除目录(加-rf参数不询问直接删除目录及其中的文件)
[root@bogon 0608]# mkdir -p a/b/c
[root@bogon 0608]# rm -rf a
[root@bogon 0608]# ls
[root@bogon 0608]#
6. dd 命令
dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
dd命令能够让用户按照指定大小和个数的数据库来复制文件的内容。
#使用dd命令从/dev/zero设备文件中取出一个大小为560M的数据块,然后保存成名为560_file的文件。
[root@bogon 0608]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 9.9655 s, 58.9 MB/s
[root@bogon 0608]# ls
560_file
dd 命令的功能绝不仅限于复制文件这么简单。如果您想把光驱设备中的光盘制成 iso 格式的镜像文件,在 Windows 系统中需要借助第三方软件才能做到,但是在 Linux 系统中可以直接使用 dd 命令来压制出光盘镜像文件,将它变成一个可立即使用的 iso 镜像。
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
考虑到有些读者会纠结 bs 块大小与 count 块个数的关系,下面举一个吃货的例子进行解释。假设小明的饭量(即需求)是一个固定值,用来盛饭的勺子的大小即 bs 块的大小,而用勺子盛饭的次数即 count 块个数。小明要吃饱(满足需求),则需要在勺子大小(bs块大小)与用勺子盛饭的次数(count块个数)之间进行平衡。勺子越大,用勺子盛饭的次数就越少。由此可见,bs 与 count 都是用来指定容量大小的,只要能满足需求,可随意组合搭配方式。
7. file 命令
file 命令用于查看文件的类型,格式为“file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用 file 命令来查看文件类型了。
[root@bogon 0608]# file aaa.txt
aaa.txt: ASCII text
[root@bogon 0608]# file /dev/sda
/dev/sda: block special
[root@bogon 0608]#
道虽迩,不行不至;事虽小,不为不成。