本文目录索引:
- 1、
- 2、
- 3、
- 4、
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)
当你只有下达 ls 时,默认显示的只有:非隐藏档的档名、 以档名进行排序及档名代表的颜色显示如此而已。举例来说, 你下达『 ls /etc 』之后,只有经过排序的档名以及以蓝色显示目录及白色显示一般文件,绿色显示可执行文件,仅此而已。
无论如何, ls 最常被使用到的功能还是那个 -l 的选项,为此,很多 distribution 在默认的情况中, 已经将 ll (L 的小写) 配置成为 ls -l 的意思了!其实,那个功能是 的 功能呢~也就是说,我们直接输入 ll 就等於是输入 ls -l 是一样的
cp --复制文件或目录
- 由于cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:
- 1、是否需要完整的保留来源文件的资讯?
- 2、来源文件是否为连结档 (symbolic link file)?
- 3、来源档是否为特殊的文件,例如 FIFO, socket 等?
- 4、来源档是否为目录?
- [root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
- [root@www ~]# cp [options] source1 source2 source3 .... directory
- 选项与参数:
- -a :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- -p :连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -r :递回持续复制,用於目录的复制行为;(常用)
- -i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -l :进行硬式连结(hard link)的连结档创建,而非复制文件本身;
- -s :复制成为符号连结档 (symbolic link),亦即『捷径』文件;
- -d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
- -f :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- -u :若 destination 比 source 旧才升级 destination !
- 最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行!
-i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) |
-a :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用) -p :连同文件的属性一起复制过去,而非使用默认属性(备份常用); |
- 一般来说,我们如果去复制别人的数据 (当然,该文件你必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在默认的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是命令操作者本身。举例来说, 上面的范例二中,由於我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?^_^
- 由於具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件, 例如密码档 (/etc/shadow) 以及一些配置档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、运行以及文件拥有者等等), 否则,其他人还是无法针对你给予的文件进行修订的动作喔!注意注意!
- 复制(cp)这个命令是非常重要的,不同身份者运行这个命令会有不同的结果产生,尤其是那个-a, -p的选项, 对於不同身份来说,差异则非常的大!底下的练习中,有的身份为root有的身份为一般帐号(在我这里用vbird这个帐号), 练习时请特别注意身份的差别喔!
例题: 你能否使用vbird的身份,完整的复制/var/log/wtmp文件到/tmp底下,并更名为vbird_wtmp呢? 答: 实际做看看的结果如下:
由於vbird的身份并不能随意修改文件的拥有者与群组,因此虽然能够复制wtmp的相关权限与时间等属性, 但是与拥有者、群组相关的,原本vbird身份无法进行的动作,即使加上 -a 选项,也是无法达成完整复制权限的! |
-r :递回持续复制,用於目录的复制行为;(常用) |
-l :进行硬式连结(hard link)的连结档创建,而非复制文件本身; -s :复制成为符号连结档 (symbolic link),亦即『捷径』文件; -d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; |
-u :若 destination 比 source 旧才升级 destination ! |
如果来源档有两个以上,则最后一个目的档一定要是『目录』才行! |
rm --移除文件或目录
- [root@www ~]# rm [-fir] 文件或目录
- 选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!!
- 如果要连目录下的东西都一起杀掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用『 rm -r 』这个命令之前,请千万注意了,因为该目录或文件『肯定』会被 root 杀掉!因为系统不会再次询问你是否要砍掉呦!所以那是个超级严重的命令下达呦! 得特别注意!不过,如果你确定该目录不要了,那么使用 rm -r 来循环杀掉是不错的方式!
- 我们在之前就谈过,档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -aaa- 』系统的命令就会误判啦! 那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!如果 man rm 的话,其实还有一种方法,那就是『 rm -- -aaa- 』也可以啊!
mv --移动文件与目录或更改名称
- [root@www ~]# mv [-fiu] source destination
- [root@www ~]# mv [options] source1 source2 source3 .... directory
- 选项与参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
本文转自:,《鸟哥的linux私房菜》,请尊重原作者的劳动成果!