文件与目录管理


cd:切换目录

pwd:显示当前目录

mkdir:新建一个新的目录

rmdir:删除一个空的目录

ls:查看目录与文件

cp:复制

rm:删除

mv:移动|重命名文件与目录


切换目录(CD)


语法:cd  [相对路径或绝对路径]


举例:

[root@localhost ~]# cd ~tkf  //~ 指定用户的主文件夹
[root@localhost tkf]# cd  //默认为当前用户的主文件夹
[root@localhost ~]# cd .. //发挥上一层
[root@localhost /]# cd /var/spool/mail   //绝对路径
[root@localhost mail]# cd ../mqueue/   //相对路径
[root@localhost mqueue]# pwd
/var/spool/mqueue
[root@localhost mqueue]# cd -        //前一个工作目录   
/var/spool/mail


显示当前路径(PWD)


语法:pwd  [-P]

选项与参数:

-P:显示当前路径,而非使用连接(link)路径


举例:

root@localhost ~]# pwd
/root
[root@localhost ~]# cd /var/mail/
[root@localhost mail]# pwd 
/var/mail
[root@localhost mail]# pwd –P //  /var/mails是链接文件,实际路径是/var/spool/mail
/var/spool/mail
[root@localhost mail]#


新建目录(mkdir)

语法:mkdir  [-mp] 目录名称

选项与参数:

-m:直接配置目录的权限

-p:帮助你直接将所需要的目录,递归创建起来


举例:

[root@localhost ~]# cd /tmp
[root@localhost tmp]# mkdir test
[root@localhost tmp]# ls -ald ./test
drwxr-xr-x 2 root root 4096 02-20 10:47 ./test
[root@localhost tmp]# mkdir test1/test2/test3
mkdir: 无法创建目录 “test1/test2/test3”: 没有那个文件或目录
[root@localhost tmp]# mkdir -p test1/test2/test3
[root@localhost tmp]# ls -ald ./test1/
drwxr-xr-x 3 root root 4096 02-20 10:48 ./test1/
[root@localhost tmp]# mkdir -m 711 test5
[root@localhost tmp]# ls -ald ./test5
drwx--x--x 2 root root 4096 02-20 10:48 ./test5
[root@localhost tmp]#


删除空目录(rmdir)


语法:rmdir [-p] 目录名称

选项与参数:

-p:连同上层“空的”目录一起删除


举例:

[root@localhost tmp]# rmdir test
[root@localhost tmp]# rmdir  test1
rmdir: test1: 目录非空
[root@localhost tmp]# rmdir -p  test1/test2/test3/


查看目录与文件(ls)

语法:

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称

[root@www ~]# ls [--color={never,auto,always}] 目录名称

[root@www ~]# ls [--full-time] 目录名称


选项与参数:

-a:全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)

-A:全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录

-d:仅列出目录本身,而不是列出目录内的文件数据(常用)

-f:直接列出结果,而不进行排序 (ls 默认会以档名排序!)

-F:根据文件、目录等资讯,给予附加数据结构,例如:

   *:代表可运行档; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;

-h:将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来;

-i:列出 inode 号码,inode 的意义下一章将会介绍;

-l:长数据串列出,包含文件的属性与权限等等数据;(常用)

-n:列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)

-r:将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;

-R:连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;

-S:以文件容量大小排序,而不是用档名排序;

-t:依时间排序,而不是用档名。

--color=never  :不要依据文件特性给予颜色显示;

--color=always :显示颜色

--color=auto   :让系统自行依据配置来判断是否给予颜色

--full-time    :以完整时间模式 (包含年、月、日、时、分) 输出

--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)

                      而非内容变更时间(modification time)

复制(cp)

语法:

cp  [-adfilprsu] 源文件目标文件

选项与参数:

-a:相当于-pdr

-d:若源文件为链接文件的属性,则复制连接文件属性而非文件本身

-f: 若目标文件已经存在且无法复制,则删除后在尝试一次

-i:若目标文件已经存在时,在覆盖是会先询问操作的进行

-l:进行硬链接

-p:连同文件的属性一起复制

-r:递归持续复制

-s:复制成符号链接文件

-u:若目标文件比源文件旧才更新


举例1:文件复制

[root@localhost tmp]# cp /var/log/wtmp wtmpTest
[root@localhost tmp]# cp -i /var/log/wtmp wtmpTest  //参数i
cp:是否覆盖“wtmpTest”? y
[root@localhost tmp]# ll /var/log/wtmp wtmpTest 
-rw-rw-r-- 1 root utmp 125952 02-20 10:25 /var/log/wtmp
-rw-r--r-- 1 root root 125952 02-20 13:18 wtmpTest    //属性变成了当前用户
[root@localhost tmp]# cp -a /var/log/wtmp wtmpTest_a //-a 连同属性一起复制
[root@localhost tmp]# ll /var/log/wtmp wtmpTest wtmpTest_a
-rw-rw-r-- 1 root utmp 125952 02-20 10:25 /var/log/wtmp
-rw-r--r-- 1 root root 125952 02-20 13:18 wtmpTest
-rw-rw-r-- 1 root utmp 125952 02-20 10:25 wtmpTest_a
[root@localhost tmp]# su tkf
[tkf@localhost tmp]$ cp -a /var/log/wtmp wtmpTest_t 
[tkf@localhost tmp]$ ll  wtmpTest_t
-rw-rw-r-- 1 tkf tkf 125952 02-20 10:25 wtmpTest_t  //当用户权限不足时,即使-a也无法更改属性

1.      源文件所在需要具有的权限RX

2.      目的文件所在目录需要WX权限

3.      在权限不足的情况下即使-a也无法更改文件属性



举例2:目录复制

[root@localhost tmp]# ll ./copydir/
-rw-r--r-- 1 root root 0 02-20 13:54 afile
-rw-r--r-- 1 root root 0 02-20 13:54 bfile
[root@localhost tmp]# cp /etc ./copydir/  // etc文件夹还有文件,直接复制失败
cp: 略过目录 “/etc”
[root@localhost tmp]# cp -r /etc ./copydir/  // 递归复制
[root@localhost tmp]# ll ./copydir/
-rw-r--r--   1 root root     0 02-20 13:54 afile
-rw-r--r--   1 root root     0 02-20 13:54 bfile
drwxr-xr-x 114 root root 12288 02-20 13:59 etc


举例3:软硬连接复制

[root@localhost tmp]# cp -s passwd passwd_slink
[root@localhost tmp]# cp -l passwd passwd_hlink
[root@localhost tmp]# ll passwd passwd_*
-rw-r--r-- 3 root root 2219 02-17 12:22 passwd
-rw-r--r-- 3 root root 2219 02-17 12:22 passwd_hlink
lrwxrwxrwx 1 root root    6 02-20 14:07 passwd_slink -> passwd  //连接文件
[root@localhost tmp]# cp passwd_slink passed_slink1
[root@localhost tmp]# cp -d passwd_slink passed_slink2

[root@localhost tmp]# ll pass*
-rw-r--r-- 1 root root 2219 02-20 14:20 passed_slink1 //源文件
lrwxrwxrwx 1 root root    6 02-20 14:21 passed_slink2 -> passwd // 连接文件
-rw-r--r-- 3 root root 2219 02-17 12:22 passwd



删除(rm)


语法:rm [-fir] 文件或目录

选项与参数:

-f:强制模式,不会进行询问

-i:互动模式

-r:递归删除


举例:

[root@localhost tmp]# ll copydir/
-rw-r--r--   1 root root     0 02-20 13:54 afile
-rw-r--r--   1 root root     0 02-20 13:54 bfile
drwxr-xr-x 114 root root 12288 02-20 13:59 etc
[root@localhost tmp]# rm -r ./copydir/
rm:是否进入目录 “./copydir/”? y
rm:是否删除 一般空文件 “./copydir//afile”? y
…
rm:是否删除 一般文件 “./copydir//etc/tux.mime.types”? y
可以rm -rf ./copydir/ 来避免提示


移动|重命名文件与目录(mv)

语法:rm [-fiu] 源文件,目标目录

选项与参数:

-f:强制模式,不会进行询问

-i:互动模式

-u:若目标文件已经存在,且源文件比较新才会更新


举例:

[root@localhost tmp]# mkdir movedir
[root@localhost tmp]# cp ~/.bashrc ./bashrc
[root@localhost tmp]# mv -i bashrc ./movedir/  //文件的移动
[root@localhost tmp]# ll ./movedir/
-rw-r--r-- 1 root root 176 02-20 14:55 bashrc
[root@localhost tmp]# mv ./movedir/bashrc ./movedir/b1 //文件的重命名
[root@localhost tmp]# ll ./movedir/
-rw-r--r-- 1 root root 176 02-20 14:55 b1