[笔记]何为Linux及其文件系统(五)
一、ls
-a 全部的文件,连同隐藏的文件(开头为.的文件)
-d 仅列出目录本身,而不是列出目录内的文件数据
-l 长数据串列出,包含文件的属性和权限等数据
-F 根据文件、目录等资讯,给予附加数据结构,例如:*:代表可运行档;/:代表目录;=:代表socket文件;|:代表FIFO文件
-h 将文件容量以用户较易读的方式列出,例如GB、KB等
-S 以文件大小顺序列出(默认以档名排序)
-t 以时间顺序列出(默认以档名排序)
-r 将排序结果以反向输出
-R 连同子目录内容一并列出
--full-time 以完整时间模式(包含年、月、日、时、分)输出
--time={atime,ctime} 输出access时间或改变权限属性的时间。而非内容变更时间(mtime,modification time)
--color=auto 让系统自动根据配置来判断是否给予颜色
二、cp
cp如果没有加任何属性,复制的就是原始文件,而非源文件的属性(注意和-d的区别)
-a 想当于-pdr
-p 连同文件的属性一并复制过去,而非使用默认属性(备份常用)
-d 若来源档位连接档的属性(link file),则复制连接档属性而非文件本身
-r 递归连续复制,用于目录的复制
-i 互动模式,若目标档destination已经存在,在覆盖的时候询问动作的进行
-f 强制,若目标文件已经存在且无法开启,则移除后再尝试
-l 进行硬式连接(hard link)的连接档创建,而非复制文件本身
-s 复制成为符号连接档(symbolic link),亦称快捷方式
-u 若destination比source旧才升级destination,常用于备份。因为只有在目标文件和源文件由差异时才会复制。
注意:
①不同身份运行cpui有不同的结果产生,尤其是-a
②-l和-s建立连接档的区别:-l是实体连接,-s是符号连接。例如
bashrc_slink是一个捷径,该捷径连接到bashrc去,所以你可以看到该档名右侧有一个->的符号(ls -l)
bashrc_hlink是与 bashrc的属性和权限完全一样,与尚未进行连接之前的差异是第二栏的link数由1变成2
三、rm
-f 忽略不存在的文件,不会出现警告信息
-i 互动模式,在删除前询问使用者是否执行
-r 递归删除,用于目录的删除(-rf)
注意:
①假如要删除目录/temp/etc
rm -r /temp/etc
因为身份是root,默认已经加入-i,所以需要一直按y才能删除成功
加入不想继续按y,可以按ctrl——c来结束rm的工作
这是一种保护的动作,假如确定要删除掉此目录而不询问,则可以
\rm -r /temp/etc
在命令行前面加上\可以忽略alias的指定选项(i、f、r)
②假如要删除一个带-开头的文件
touch ./-aaa- #先创建一个空文件
rm -aaa- #首先这样会导致系统误判
rm ./-aaa- #正确删除方式
四、mv
mv用于移动文件或目录,或者更名
-f 如果目标文件已经存在,直接覆盖,不会询问
-i 互动模式,在覆盖前询问使用者是否执行
-u 若目标文件已经存在,且source比较新,才会升级update
mv bashrc mvtest将文件bashrc移动到mvtest文档
mv mvtest mvtest2修改目录mvtest的名称(更名操作)
mv bashrc1 bashrc2 mvtest2如果有多个来源和目录,则最后一个参数一定是目录
注意:
其实对于更名,还有一个命令rename
rename专门进行多个档名的同时更名,并非针对单一档名
五、cat
-n 列印出行号,连同空白行也会有行号,与-b的选项不同
-b 列出行号,仅针对非空白行做行号显示,空白行不标行号
-A 相当于-vET
-v 列出一些看不出来的特殊字符
-E 将结尾的断行字符$显示出来
-T 将[tab]按键以^|显示出来
例如:
cat /etc/issue正常显示
cat -n /etc/issue加印行号
cat -b /etc/issue不想加印空白行号
六、touch
-a 仅修改access time访问时间
-c 仅修改文件ctime当前时间,若该文件不存在则创建新文件
-m 仅修改mtime创建时间
-t 后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
-d 后面可以接欲修订的日期而不用目前的时间
注意:
常用来新建一个空的文件并观察时间
在默认状态下,如果touch后面接了文件名,则该文件的三个时间(atime、ctime、mtime)都会升级为当前时间
若该文件不存在,则会主动创建一个新的空的文件
例如,对于某个文件,
(1)可以使用命令:ll file; ll --time=atime file;ll --time=ctime file
查看文件的mtime、atime、ctime
(2)touch -d "2 days ago" file将日期修改为两天前
此时再用(1)的命令查看发现,atime和mtime变成了两天前,而ctime没有改变
(3)touch -t 0709150202 file将日期修改为2007/09/15 2.02
此时再用(1)的命令查看发现,atime和mtime改变了,而ctime则是记录目前的时间
常用的几个命令如上,下面我们将了解一下命令与文件的搜寻which、whereis、locate、find的区别