Shell命令-文件及目录操作之mkdir、mv

文件及目录操作 - mkdir、mv

1、mkdir:创建目录

mkdir命令的功能说明

mkdir命令用于创建目录,默认情况下,要创建的目录已存在,会提示文件存在,不会继续创建目录。

mkdir命令的语法格式

mkdir [OPTION]... DIRECTORY...
mkdir [参数选项] [目录]

mkdir命令的选项说明

mkfir 选项就几个,表1为 mkdir 命令的参数及说明:

表1: mkdir命令的参数及说明

参数选项 解释说明(带*的为重点)
-p 递归创建目录,如果目录事先存在,也不会报错*
-m 设置新创建的目录的默认目录对应的权限
-v 显示创建的过程

mkdir命令的实践操作

范例1: 不使用任何参数创建目录

[root@oldboyedu  ~]# cd /data/
[root@oldboyedu  /data]# tree -d          <-->没有任何目录
.

0 directories
[root@oldboyedu  /data]# mkdir test      <-->创建一个test目录
[root@oldboyedu  /data]# tree -d            <-->再次查看,发现已经创建好了
.
└── test

1 directory
[root@oldboyedu  /data]# mkdir test       <-->再创建一次,提醒已经存在
mkdir: cannot create directory ‘test’: File exists

范例2: 使用 -p 参数递归创建目录

[root@oldboyedu  /data]# mkdir oldboy/oldgirl         <-->创建oldboy下的oldgirl,业务没有oldboy,所以报错
mkdir: cannot create directory ‘oldboy/oldgirl’: No such file or directory
[root@oldboyedu  /data]# mkdir -p oldboy/oldgirl     <-->使用 -p 参数,就可以创建了
[root@oldboyedu  /data]# tree -d                                 <-->查看结果(也可先创建oldboy,在创建oldgirl,不推荐)
.
├── oldboy
│   └── oldgirl
└── test

3 directories

范例3:-v 参数显示创建目录的过程(没什么实际用途)

[root@oldboyedu  /data]# mkdir -pv oldboy2/test
mkdir: created directory ‘oldboy2’
mkdir: created directory ‘oldboy2/test’

范例3: 创建目录时可使用 -m参数设置目录的默认权限

[root@oldboyedu  /data]# mkdir dir1
[root@oldboyedu  /data]# ls -ld dir1/
drwxr-xr-x 2 root root 6 Apr  6 17:23 dir1/     <-->目录的默认权限是755
[root@oldboyedu  /data]# mkdir -m 333 dir2
[root@oldboyedu  /data]# ls -ld dir2
d-wx-wx-wx 2 root root 6 Apr  6 17:23 dir2    <-->权限已经发生变法了

2、mv:移动或重命名文件

mv命令的功能说明

mv命令用于移动或重命名文件。

mv命令的语法格式

mv [OPTION]... SOURCE... DIRECTORY
mv [参数选项] [源文件或目录] [目标文件或目录]

mv命令的选项说明

mv 选项就几个,表1为 mv 命令的参数及说明:

表1: mv命令的参数及说明

参数选项 解释说明(带*的为重点)
-f 若目标文件已经存在,不会询问是否覆盖
-i 若目标文件已经存在,就会询问是否覆盖
-n 不覆盖已经存在的文件
-t 指定mv的目标目录,此时目标目录在前,源文件在后
-u 在源文件比目标文件新,或目标文件不存在时才移动

mv命令的实践操作

范例1: 给文件改名字

[root@oldboyedu  /test]# ls
dir1  dir2  dir3  file1.txt  file2.txt  file3.txt
[root@oldboyedu  /test]# mv file3.txt file4.txt   <-->若目标文件不存在,重命名
[root@oldboyedu  /test]# ls
dir1  dir2  dir3  file1.txt  file2.txt  file4.txt
[root@oldboyedu  /test]# mv file2.txt file4.txt   <-->若目标文件存在,则会提示
mv: overwrite ‘file4.txt’? y                               <-->y表示确认,n表示不同意
[root@oldboyedu  /test]# alias mv                     <-->之所以会提示,是因为系统做了别名
alias mv='mv -i'
[root@oldboyedu  /test]# ls
dir1  dir2  dir3  file1.txt  file4.txt
[root@oldboyedu  /test]# \mv file1.txt file4.txt   <-->取消别名的方法
[root@oldboyedu  /test]# ls
dir1  dir2  dir3  file4.txt

范例2: 移动文件

移动单个文件

[root@oldboyedu  /test]# ls dir1/
sub1
[root@oldboyedu  /test]# mv file4.txt dir1/
[root@oldboyedu  /test]# ls dir1/
file4.txt  sub1

移动多个文件

[root@oldboyedu  /test]# ls dir1/
file4.txt  sub1
[root@oldboyedu  /test]# ls
dir1  dir2  dir3
[root@oldboyedu  /test]# touch file1.txt file2.txt
[root@oldboyedu  /test]# mv file1.txt file2.txt dir1/
[root@oldboyedu  /test]# ls dir1/
file1.txt  file2.txt  file4.txt  sub1

范例3: 将源文件和目标文件调换移动文件到目录(-t参数)

[root@oldboyedu  /test]# ls
dir1  dir2  dir3
[root@oldboyedu  /test]# ls dir1/
file1.txt  file2.txt  file4.txt  sub1
[root@oldboyedu  /test]# mv dir1/file* .                                     <-->还原实验环境
[root@oldboyedu  /test]# ls dir1/
sub1
[root@oldboyedu  /test]# mv -t dir1/ file1.txt file2.txt file4.txt   <-->源文件和目标文件调换
[root@oldboyedu  /test]# ls dir1/
file1.txt  file2.txt  file4.txt  sub1
[root@oldboyedu  /test]# ls
dir1  dir2  dir3
[root@oldboyedu  /test]# 

范例3: 移动目录

[root@oldboyedu  /test]# ls
dir1  dir2  dir3
[root@oldboyedu  /test]# mv dir1 dir4      <-->目录dir4不存在,重命名
[root@oldboyedu  /test]# ls
dir2  dir3  dir4
[root@oldboyedu  /test]# ls dir4
file1.txt  file2.txt  file4.txt  sub1
[root@oldboyedu  /test]# mv dir2 dir4      <-->目录dir4存在,移动
[root@oldboyedu  /test]# ls dir4
dir2  file1.txt  file2.txt  file4.txt  sub1
[root@oldboyedu  /test]# mv dir3 dir4
[root@oldboyedu  /test]# ls
dir4
[root@oldboyedu  /test]# ls dir4/
dir2  dir3  file1.txt  file2.txt  file4.txt  sub1

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津

上一篇:scala-类


下一篇:TCP&UDP