(1)Linux 文件目录管理命令
在 linux 的日常运维工作中,需要掌握对文件的创建、修改、复制、剪切、更名与删除等操作。
1. touch
touch 用于创建空白文件或者设置文件时间,格式为 “ touch [选项] [文件] ”
对于 touch 命令来讲
-
创建空白的文本文件相当简单,如 touch myText 命令就可以创建出一个名为myText的文本文件
-
有难度的操作主要体现在
- 设置文件内容的修改时间(mtime)
- 设置文件权限或文件属性的修改时间(ctime)
- 设置文件读取时间(atime)
参数 | 作用 |
---|---|
-a | 仅修改“读取时间” (atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改 atime 和 mtime |
实例:
修改 myText.txt 文件,然后把时间改回初始时间。
[root@localhost ~]# ls -l myText.txt
-rw-r--r--. 1 root root 42 Jun 26 00:04 myText.txt
[root@localhost ~]# echo "new line">>myText.txt
[root@localhost ~]# ls -l myText.txt
-rw-r--r--. 1 root root 51 Jun 26 00:07 myText.txt
#同时修改atime和mtime
[root@localhost ~]# touch -d "2018-06-26 00:04" myText.txt
[root@localhost ~]# ls -l myText.txt
-rw-r--r--. 1 root root 51 Jun 26 00:04 myText.txt
2. mkdir
mkdir 命令用于创建空白的目录,格式为 “mkdir [选项] 目录 ”
mkdir 除了可以创建单个空白目录外,还可以使用 -p 参数递归创建层级目录。
实例:
创建 myDir 目录,然后再其下递归创建 01AA 目录,在 01AA 下创建 02BB 目录,在 02BB 目录下创建 03CC 目录
[root@localhost ~]# mkdir myDir
[root@localhost ~]# cd myDir
[root@localhost myDir]# mkdir -p 01AA/02BB/03CC
[root@localhost myDir]# cd 01AA
[root@localhost 01AA]# cd 02BB
[root@localhost 02BB]# cd 03CC
3. cp
cp 命令用于复制文件或目录,格式为 “cp [选项] 源文件 目标文件 ”。
- 如果目标文件是目录,则把源文件复制到该目录中
- 如果目标文件是普通文件,则会询问是否要覆盖它。
- 如果目标文件不存在,则执行正常的复制操作。
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若原始文件是“链接文件” ,保留“链接文件”属性 |
-r | 递归持续复制(针对目录) |
-i | 若文件存在则询问是否覆盖 |
-a | 等价于 -pdr |
实例:
在 myDir 目录下创建一个 newText.txt 文件,复制它一份名为 copyText.txt
[root@localhost myDir]# touch newText.txt
[root@localhost myDir]# cp newText.txt copyText.txt
[root@localhost myDir]# ls -l
total 4
drwxr-xr-x. 3 root root 4096 Jun 26 00:16 01AA
-rw-r--r--. 1 root root 0 Jun 26 00:19 copyText.txt
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText.txt
[root@localhost myDir]#
4. mv
mv 命令用于剪切文件或者重命名文件,格式为 “mv [选项] 源文件 [目标路径|目标文件名]”
实例:
在同一目录中对文件进行剪切操作,就是对其重命名。
[root@localhost myDir]# ls
01AA copyText.txt newText.txt
[root@localhost myDir]# mv copyText.txt newText2.txt
[root@localhost myDir]# ls
01AA newText2.txt newText.txt
5. rm
rm 命令用于删除文件或目录,格式为“ rm [选项] 文件”
在 linux 下删除文件时,系统默认提示是否删除,如果不想每次都被提示,可以加上 参数 -f 强制删除,删除目录时,需要加上参数 -r ,否则删除不掉。
实例:
删除目录 myDir 下的 子目录01AA和其下的子目录。
强制删除 newText2.txt
[root@localhost myDir]# ls -l
total 4
drwxr-xr-x. 3 root root 4096 Jun 26 00:16 01AA
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText2.txt
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText.txt
[root@localhost myDir]# rm 01AA
rm: cannot remove `01AA': Is a directory
[root@localhost myDir]# rm -r 01AA
rm: descend into directory `01AA'? y
rm: descend into directory `01AA/02BB'? y
rm: remove directory `01AA/02BB/03CC'? y
rm: remove directory `01AA/02BB'? y
rm: remove directory `01AA'? y
[root@localhost myDir]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText2.txt
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText.txt
[root@localhost myDir]# rm -f newText2.txt
[root@localhost myDir]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jun 26 00:19 newText.txt
[root@localhost myDir]#
6. dd
dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为 “dd [参数]”
dd命令是一个比较重要又比较有特色的命令,可以按照指定的大小和个数的数据块来复制文件,当然,如果你愿意的话,可以在复制的过程中对数据进行转换。
参数 | 作用 |
---|---|
if | 输入文件的名称 |
of | 输出文件的名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制的“块”的个数 |
实例:
用 dd 命令,从 /dev/zero 设备文件中取出一个大小为 256MB 的数据块,然后保存名为256_file 的文件。
[root@localhost ~]# dd if=/dev/zero of=256_file count=1 bs=256M
1+0 records in
1+0 records out
268435456 bytes (268 MB) copied, 32.2918 s, 8.3 MB/s
dd 命令的功能不仅仅于此,当你想把光驱中光盘制作成 iso 镜像文件的时候,在 Windows 操作系统下需要借助第三方软件。但是在 linux 系统下,可以直接使用 dd 命令来压制出 iso 镜像文件。
实例:
[root@linuxprobe ~]# dd if=/dev/cdrom of=myserver.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 可以随意自由的搭配。
7. file
file 命令 用于查看文件的类型。格式为 “file 文件名”。
在 linux 中,由于文本、目录、设备这些都统称为文件,所以我们不能够单凭后缀就知道文件的具体类型。此时就可以使用 file 命令来查看文件类型。
实例:
[root@localhost ~]# file /dev/sda
/dev/sda: block special
[root@localhost ~]# file myDir
myDir: directory
[root@localhost ~]# cd myDir
[root@localhost myDir]# ls
newText.txt
[root@localhost myDir]# file newText.txt
newText.txt: ASCII text
[root@localhost myDir]#