目录的基本命令(mkdir、tree、touch、rm、cp、mv)
创建目录 mkdir
mkdir aa bb cc 同时在本目录创建多个文件夹
1
2
3
|
[root@localhost tmp] # mkdir aa bb cc
[root@localhost tmp] # ls
aa bb cc yum.log |
mkdir -p aa/bb/cc 加p 递归创建目录
[root@localhost tmp]# tree -C aa/ #查看aa目录的结构
aa/
└── bb
└── cc
mkdir -pv dd/ee/ff 加v 可视化显示创建目录过程
1
2
3
4
|
[root@localhost tmp] # mkdir -pv dd/ee/ff
mkdir : created directory ` dd '
mkdir : created directory ` dd /ee '
mkdir : created directory ` dd /ee/ff '
|
创建文件 touch
1
2
3
|
[root@localhost ~] # touch 123
[root@localhost ~] # ls -l 123
-rw-r--r--. 1 root root 0 Mar 18 10:06 123 |
rmdir 用于删除空目录,目录中有文件不能删除,不常用;
1
2
3
4
|
[root@localhost ~] # mkdir -v aaa bbb
mkdir : created directory `aaa'
mkdir : created directory `bbb'
[root@localhost ~] # rmdir aaa bbb
|
删除文件 rm
[root@localhost tmp]# which rm
alias rm='rm -i' # rm=rm -i 加i选项作用会提示是否删除
/bin/rm
rm 11 删除文件会提示是否删除 y删除 n不删除
[root@localhost tmp]# touch 11
[root@localhost tmp]# rm 11
rm: remove regular empty file `11'? n
rm -f 11 加 f 强制删除文件,不会提示
/bin/rm 11 直接加绝对路径,直接删除文件不会提示
1
2
|
[root@localhost tmp] # rm -f 11
[root@localhost tmp] # /bin/rm 11
|
删除文件夹后面要加参数 rm -r
[root@localhost tmp]# rm aa #直接删除文件夹会提示是一个目录
rm: cannot remove `aa': Is a directory
rm -r bb 删除文件夹会提示是否删除,y删除 n不删除
[root@localhost tmp]# rm -r bb
rm: remove directory `bb'? y
rm -rf aa 强制删除文件夹,不会提示
/bin/rm -r 11 直接加绝对路径,直接删除文件夹不会提示
使用unalias 命令之后,也不会提示,直接删除。只在当前shell生效,退出当前shell后失效;
1
2
3
4
5
6
7
|
[root@localhost tmp] # unalias rm
[root@localhost tmp] # ls
aaa aaa_bak yum.log [root@localhost tmp] # rm -r aaa
[root@localhost ~] # exit
[root@localhost ~] # rm -r 111
rm : remove directory `111'? n
|
复制文件 cp
cp aaa aaa_bak 复制aaa文件,备份一份到aaa_bak
/bin/cp aaa aaa_bak 使用绝对命令,强制拷贝覆盖,不会提示
[root@localhost tmp]# cp new.log /root/new.log #复制同名文件会提示是否删除,y删除 n不删除
cp: overwrite `/root/new.log'? n
[root@localhost tmp]# /bin/cp new.log /root/new.log
cp -r aa aa_bak 复制文件夹aa,备份一份aa_bak 需要加-r参数
1
2
3
4
|
[root@localhost tmp] # mkdir aaa
[root@localhost tmp] # cp -r aaa aaa_bak
[root@localhost tmp] # ls
aaa aaa_bak yum.log |
[root@localhost tmp]# cp aaa bbb #直接拷贝文件夹会提示略过目录
cp: omitting directory `aaa'
复制目录时,目标目录有同名目录不会提示,如果目录有文件则复制文件到目标目录下面。
[root@localhost ~]# ls
12 anaconda-ks.cfg install.log install.log.syslog test test1
[root@localhost ~]# cp -r 12 /tmp/ 拷贝同一名称的目录到另一个目录下,不会提示
[root@localhost ~]# ls /tmp/
111 12 huang yum.log
[root@localhost ~]# touch 12/1.txt 在目录下新建一个文件
[root@localhost ~]# cp -r 12 /tmp/ 再次拷贝时,会拷贝目录下的文件到另一个目录下面
[root@localhost ~]# ls /tmp/12/
1.txt
cp -v 可视化显示拷贝过程,拷贝bb为dd
1
2
|
[root@localhost tmp] # cp -v bb dd
`bb ' -> `dd'
|
移动文件或者改名 mv
同一个目录下目标文件或文件夹不存在,改名
不同目录下移动文件,目标文件存在会提示是否覆盖。
[root@localhost tmp]# mv /root/bb ./
mv: overwrite `./bb'? n
[root@localhost tmp]# /bin/mv /root/bb ./ 使用绝对路径强制覆盖不会提示;
移动的同时如果目标文件存在,可以改名
[root@localhost tmp]# cat /root/aaa
def
[root@localhost tmp]# mv /root/aaa ./aa #移动root目录下的aaa到当前目录并改名aa
[root@localhost tmp]# cat aa
def
[root@localhost tmp]# mv -v aa bb #mv -v 可视化显示移动过程,aa改名为bb
`aa' -> `bb'