Linux档案与目录管理


在Linux上对文档与目录管理是使用非常频繁的操作,本篇博客主要总结了相关操作命令,便于查阅与继续总结。

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 号码
-l :长数据串行出,包括档案的属性与权限等等数据; (常用)
-n :列出 UID 与 GID 而非使用者与群组的名称
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等于该目录下的所有档案都会显示出来;
-S :以档案容量大小排序,而不是用档名排序;
-t :依时间排序,而不是用档名。
--color=never :不要依据档案特性给予颜色显示;
--color=always :显示颜色
--color=auto :让系统自行依据设定来判断是否给予颜色
--full-time :以完整时间模式 (包括年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)
而非内容变更时间 (modification time)

默认显示的只有: 非隐藏档的档名、 以档名进行排序及文件名代表的颜色显示(蓝色显示目录及白色显示一般档案)如此而已

cp (复制档案或目录)

[root@www ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
选项与参数:
-a :相当于 -pdr 的意思,至于 pdr 请参考下列说明; (常用)
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次;
-i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l :进行硬式连结(hard link)的连结档建立, 而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
-r :递归持续复制,用于目录的复制行为; (常用)
-s :复制成为符号链接文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !

总结:

  • 与同身份者执行这个指令会有与同的结果产生,尤其是那个-a, -p 的选项, 对于与同身份来说,差异则非常的大。
  • 在与加任何选项的情冴下,档案的某些属性/权限会改变;这是个很重要的特性!要注意!还有,连档案建立的时间也与一样了!
  • 那如果你想要将档案的所有特性都一起复制过来该忟办?可以加上 -a
    原本复制的是连结档,但是却将连结档的实际档案复制过来了。也就是说,如果没有加上任何选项时, cp 复制的是源文件,而非链接文件的属性!
  • 若要复制链接文件的属性,就得要使用 -d 的选项了!
  • 如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!

rm (移除档案或目录)

[root@www ~]# rm [-fir] 档案或目录
选项与参数:
-f :就是 force 的意思,忽略与存在的档案,与会出现警告讯息;
-i :互动模式,在删除前会询问使用者是否操作
-r :递归删除,最常用在目录的删除了

mv (移动档案与目录,或更名)

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

[root@www tmp]# mv bashrc1 bashrc2 mvtest2
# 注意到这边,如果有多个来源档案或目录,则最后一个目标文件一定是『目录』
# 意思是说,将所有的数据移动到该目录

取得路径的文件名与目录名称

完整文件名 (包括目录名称与文件名) ,完整档名最长可以到达 4096 个字符。
那么知道那个是档名?那个是目录名?
就是利用斜线 (/) 来分辨!
可使用basename 与 dirname 指令,例子如下:

[root@www ~]# basename /etc/sysconfig/network
network 	<== 取得最后的档名
[root@www ~]# dirname /etc/sysconfig/network
/etc/sysconfig		<== 取得的变成目录名
发布了79 篇原创文章 · 获赞 10 · 访问量 8678

猜你喜欢

转载自blog.csdn.net/weixin_44728363/article/details/102471555