Linux文件操作命令的学习笔记
一. 特殊目录:
目录 说明
. 表示当前目录
.. 表示上一层目录
– 表示前一个工作目录
~ 表示“目前用户身份”所在的主文件夹
~account 表示account这个用户的主文件夹(account是个账号名称)
二. 目录操作命令:
ls:显示指定目录和文件的信息;
pwd:Print Working Directory,显示当前目录名称;
cd:Change Directory,进入指定的目录;
mkdir:Make Directory,创建指定名称的目录;
rmdir:Remove Directory,删除指定名称的目录。
2.1 ls:
ls用来显示当前目录下有哪些文件及这些文件的信息。ls最常用的参数有三个,分别如下:
参数 说明
-a 除了显示一般文件外,也会显示隐藏文件(以.开头的文件)(常用)
-A 与-a类似,但是不包括.与..这两个目录
-d 仅列出目录本身,而不是列出目录内的文件数据(常用)
-l : 使用长格式显示文件内容,包括文件的属性与权限等数据(常用
-f 直接列出结果,而不进行排序;(ls默认以文件名排序)
-F : 根据文件、目录等信息给予附加数据结构。例如 * 表示可执行文件; / 表示目录; = 表示socket文件; 表示FIFO文件
-h 将文件容量以人类较易读的方式(例如GB、KB等)列出来
-i 列出inode号码
-n 列出UID与GID,而非用户与用户组的名称
-r 按排序结果反向输出
-R 连同子目录内容一起列出,即将该目录下的所有文件都显示出来
-S 以文件容量大小排序
-t 以时间排序
–color=never 不显示颜色
–color=always 显示颜色
–color=auto 让系统自行依据设置来判断是否给予颜色
–full-time 以完整时间模式输出
–time={atime, ctime} 输出访问时间或改变权限属性时间(ctime),而非内容更改时间
2.1.1 细说ls -l
ls -l 使用长格式显示文件内容,如下:
QQ图片20160911112523.png-1.9kB
第一个栏位,表示文件的读写权限属性。
第二个栏位,表示文件个数。
第三个栏位,表示该文件或目录的拥有者。
第四个栏位,表示所属的组(group)
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte。
第六个栏位,表示创建日期。以“月,日,时间”的格式表示。
第七个栏位,表示文件名或目录名。
2.1.2 细说ls -F
ls -F会在文件的后面多添加表示文件类型的符号。例如:
*表示可执行文件;
/表示目录;
@表示连结文件。
image_1asbkr43t193o1v9q7kpgb91mc812.png-0.9kB
2.2 mkdir:创建指定名称的目录
mkdir的参数如下:
-m:配置文件的权限。
-p:直接将所需要的目录(包含上层目录)递归创建起来。
默认情况下,你所需要的目录得一层一层地创建。假如要创建一个目录为”/home/bird/testing/test1″,则必须要有”/home/bird/testing/”这个目录,才能创建成功。
如果创建目录时加上 -p这个参数,则系统会自动帮你将/home、/home/bird、/home/bird/testing依序创建起来。并且如果该目录本来就存在时,系统也不会显示错误信息。
2.3 rmdir:删除空目录
rmdir只能删除空目录。
如果要删除整个目录下的所有文件,可以使用”rm -r”。
三. 复制、删除与移动
cp:复制;
rm:删除;
mv:移动。
3.1 cp:复制
cp命令可用于复制文件或文件夹,也可以创建连接文件(即快捷方式)。目标文件参数必须是一个已经存在的目录,否则将出现错误。
cp命令的参数如下:
参数 说明
-d 若源文件为链接文件,则复制连接文件属性而非文件本身
-f 强行复制文件或目录,不论目标文件或目录是否已存在
-i 若文件已经存在时,则在覆盖前会先询问用户(常用)
-l 进行硬连接的连接文件创建,而非复制文件本身
-p 连同文件的属性一起复制过去,而非使用默认属性(备份常用)
-r 递归持续复制,用于目录的复制行为(常用)
-s 对源文件建立符号连接,而非复制文件
-u 若destination比source旧才更新destination
-a 相当于-pdr(常用)
3.2 rm:删除
rm命令可删除文件或目录。
rm命令的参数如下:
参数 说明
-f force,忽略不存在的文件,不会出现警告信息
-i 互动模式,在删除前会询问用户是否操作
-r 递归删除。最常用在目录的删除。(很危险的操作!!)
3.3 mv:移动
mv命令可移动文件或目录,参数如下:
参数 说明
-f force,当目标文件存在时,不会询问而直接覆盖
-i 若目标文件已经存在时,则询问是否覆盖
-u 若目标文件已经存在,切source比较新,才会更新
四. 文件内容查阅
查阅文件内容的命令有:
cat:由第一行开始显示文件内容;
tac:从最后一行开始显示文件内容;
nl:显示的时候,顺表输出行号;
more:一页一页地显示文件内容;
less:与more类似,并且可以往前翻页;
head:只看最前面的几行;
tail:只看最后几行;
od:以二进制的方式读取文件内容。
4.1 cat、tac:
cat,即Concatenate(连续)的缩写。tac刚好是将cat反写过来,所以它的功能就跟cat相反。
cat和tac命令的参数如下:
参数 说明
-b 列出行号,仅针对非空白行做行号显示,空白行不标行号
-E 将结尾的断行字符$显示出来
-n 打印出行号,联通空白行也会有行号
-T 将[Tab]键以^I显示出来
-v 列出一些看不出来的特殊字符
-a 相当于-vET
4.2 head、tail:
head与tail命令都是以“行”为单位来进行数据选取。可选的参数有:
参数 说明
-n [number] 表示显示几行。例如 head -n 20 test.txt。
-b [number] 从 number 变量表示的 512 字节块位置开始读取指定文件
-c [number] 从 number 变量表示的字节位置开始读取指定文件
-f 用于监视另一个进程正在写入的文件的增长 。
-k [number] 从 number 变量表示的 1KB 块位置开始读取指定文件
-m [number] 从 number 变量表示的多字节字符位置开始读取指定文件。
五. 修改文件时间或创建新文件
touch命令可以修改文件时间和创建新的空文件。具体参数如下:
参数 说明
-a 仅修改访问时间
-c 仅修改文件的状态更改时间,若文件不存在则不创建新文件
-d 后面可以接希望更改的日期,也可是用用–date=”日期”
-m 仅修改mtime
-t 后面可以接希望更改的时间,格式为[YYMMDDhhmm]