文件与目录管理
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