文件与目录管理

 本文目录索引:

  
  
  
  
  1. 1、ls --文件与目录的检视 
  2. 2、cp --复制文件或目录 
  3.      -i : 
  4.      -a :-p : 
  5.      -r : 
  6.      -l : -s: -d : 
  7.      -u : 
  8.      如果来源档有两个以上,则最后一个目的档一定要是『目录』才行! 
  9. 3、rm --移除文件或目录 
  10. 4、mv --移动文件与目录或更改名称

 ls --文件与目录的检视

 

  
  
  
  
  1. [root@www ~]# ls [-aAdfFhilnrRSt] 目录名称 
  2. [root@www ~]# ls [--color={never,auto,always}] 目录名称 
  3. [root@www ~]# ls [--full-time] 目录名称 
  4. 选项与参数: 
  5. -a  :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) 
  6. -A  :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录 
  7. -d  :仅列出目录本身,而不是列出目录内的文件数据(常用) 
  8. -f  :直接列出结果,而不进行排序 (ls 默认会以档名排序!) 
  9. -F  :根据文件、目录等资讯,给予附加数据结构,例如: 
  10.       *:代表可运行档; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件; 
  11. -h  :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来; 
  12. -i  :列出 inode 号码,inode 的意义下一章将会介绍; 
  13. -l  :长数据串列出,包含文件的属性与权限等等数据;(常用) 
  14. -n  :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!) 
  15. -r  :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; 
  16. -R  :连同子目录内容一起列出来,等於该目录下的所有文件都会显示出来; 
  17. -S  :以文件容量大小排序,而不是用档名排序; 
  18. -t  :依时间排序,而不是用档名。 
  19. --color=never  :不要依据文件特性给予颜色显示; 
  20. --color=always :显示颜色 
  21. --color=auto   :让系统自行依据配置来判断是否给予颜色 
  22. --full-time    :以完整时间模式 (包含年、月、日、时、分) 输出 
  23. --time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)  
  24.                        而非内容变更时间 (modification time) 

当你只有下达 ls 时,默认显示的只有:非隐藏档的档名、 以档名进行排序及档名代表的颜色显示如此而已。举例来说, 你下达『 ls /etc 』之后,只有经过排序的档名以及以蓝色显示目录及白色显示一般文件,绿色显示可执行文件,仅此而已。

无论如何, ls 最常被使用到的功能还是那个 -l 的选项,为此,很多 distribution 在默认的情况中, 已经将 ll (L 的小写) 配置成为 ls -l 的意思了!其实,那个功能是 Bash shell 的 alias 功能呢~也就是说,我们直接输入 ll 就等於是输入 ls -l 是一样的

 cp --复制文件或目录

 

  
  
  
  
  1. 由于cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到: 
  2.  
  3. 1、是否需要完整的保留来源文件的资讯? 
  4. 2、来源文件是否为连结档 (symbolic link file)? 
  5. 3、来源档是否为特殊的文件,例如 FIFO, socket 等? 
  6. 4、来源档是否为目录? 
  
  
  
  
  1. [root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination) 
  2. [root@www ~]# cp [options] source1 source2 source3 .... directory 
  3. 选项与参数: 
  4.  
  5. -a  :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用) 
  6. -p  :连同文件的属性一起复制过去,而非使用默认属性(备份常用); 
  7. -r  :递回持续复制,用於目录的复制行为;(常用) 
  8. -i  :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) 
  9.  
  10. -l  :进行硬式连结(hard link)的连结档创建,而非复制文件本身; 
  11. -s  :复制成为符号连结档 (symbolic link),亦即『捷径』文件; 
  12. -d  :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; 
  13.  
  14. -f  :为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; 
  15. -u  :若 destination 比 source 旧才升级 destination ! 
  16.  
  17. 最后需要注意的,如果来源档有两个以上,则最后一个目的档一定要是『目录』才行! 

 -i :若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

 -a :相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p :连同文件的属性一起复制过去,而非使用默认属性(备份常用); 

  
  
  
  
  1. 一般来说,我们如果去复制别人的数据 (当然,该文件你必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在默认的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是命令操作者本身。举例来说, 上面的范例二中,由於我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?^_^ 
  2.  
  3. 由於具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件, 例如密码档 (/etc/shadow) 以及一些配置档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、运行以及文件拥有者等等), 否则,其他人还是无法针对你给予的文件进行修订的动作喔!注意注意! 
  
  
  
  
  1. 复制(cp)这个命令是非常重要的,不同身份者运行这个命令会有不同的结果产生,尤其是那个-a, -p的选项, 对於不同身份来说,差异则非常的大!底下的练习中,有的身份为root有的身份为一般帐号(在我这里用vbird这个帐号), 练习时请特别注意身份的差别喔! 

例题:
你能否使用vbird的身份,完整的复制/var/log/wtmp文件到/tmp底下,并更名为vbird_wtmp呢?
答:
实际做看看的结果如下:
      
      
      
      
  1. [vbird@www ~]$ cp -a /var/log/wtmp /tmp/vbird_wtmp  
  2. [vbird@www ~]$ ls -l /var/log/wtmp /tmp/vbird_wtmp  
  3. -rw-rw-r-- 1 vbird vbird 96384  9月 24 11:54 /tmp/vbird_wtmp  
  4. -rw-rw-r-- 1 root  utmp  96384 9月 24 11:54 /var/log/wtmp 
由於vbird的身份并不能随意修改文件的拥有者与群组,因此虽然能够复制wtmp的相关权限与时间等属性, 但是与拥有者、群组相关的,原本vbird身份无法进行的动作,即使加上 -a 选项,也是无法达成完整复制权限的!

 -r :递回持续复制,用於目录的复制行为;(常用)

  -l :进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-s :复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

 -u :若 destination 比 source 旧才升级 destination ! 

 如果来源档有两个以上,则最后一个目的档一定要是『目录』才行!

  rm --移除文件或目录

 

  
  
  
  
  1. [root@www ~]# rm [-fir] 文件或目录 
  2. 选项与参数: 
  3. -f  :就是 force 的意思,忽略不存在的文件,不会出现警告信息; 
  4. -i  :互动模式,在删除前会询问使用者是否动作 
  5. -r  :递回删除啊!最常用在目录的删除了!这是非常危险的选项!!! 

  
  
  
  
  1. 如果要连目录下的东西都一起杀掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用『 rm -r 』这个命令之前,请千万注意了,因为该目录或文件『肯定』会被 root 杀掉!因为系统不会再次询问你是否要砍掉呦!所以那是个超级严重的命令下达呦! 得特别注意!不过,如果你确定该目录不要了,那么使用 rm -r 来循环杀掉是不错的方式! 

  
  
  
  
  1. 我们在之前就谈过,档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -aaa- 』系统的命令就会误判啦! 那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!如果 man rm 的话,其实还有一种方法,那就是『 rm -- -aaa- 』也可以啊! 

  mv --移动文件与目录或更改名称

 

  
  
  
  
  1. [root@www ~]# mv [-fiu] source destination 
  2. [root@www ~]# mv [options] source1 source2 source3 .... directory 
  3. 选项与参数: 
  4. -f  :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; 
  5. -i  :若目标文件 (destination) 已经存在时,就会询问是否覆盖! 
  6. -u  :若目标文件已经存在,且 source 比较新,才会升级 (update) 

本文转自:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php#file_dir_manage,《鸟哥的linux私房菜》,请尊重原作者的劳动成果!

你可能感兴趣的:(ls,cp,mv,rm)