3.1简介
UNIX将操作系统中的一切都视为文件。文件与每一个操作息息相关,而我们可以利用它们进行各种与系统或进程相关的处理工作。接下来的内容将介绍一些文件的操及文件属性。
3.2生成任意大小的文件
$ dd if=/dev/zero of=junk.data bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00421643 s, 249 MB/s
#if代表输入文件,of代表输出文件,bs代表以字节为单位的块大小,count代表需要被复制的块数。
字节(1B):c
字(2B):w
块(512B):b
千字节(1024B):k
兆字节(1024KB):M
吉字节(1024KB):G
3.3文本文件的交集与差集
交集:打印出两个文件所共有的行。
求差:打印出指定文件所包含的且不相同的那些行
差集:打印出包含在文件A中,但不包含在其他指定文件中的那些行
注意:comm必须使用排过序的文件作为输入。
一些选项
-1:从输出中删除第一列
-2:从输出中删除第二列
-3:从输出中删除第三列
我们可以通过sed命令删除掉行首的’\t’
$ comm A.txt B.txt -3|sed ‘s/^\t//’
apple
carrot
cookies
iron
silver
steel
差集:
当A.txt和B.txt作为comm命令的参数时,输出中的第一列是A.txt相对于B.txt的差集,第二列是B.txt相对于A.txt的差集。
3.4查找并删除重复文件
3.5创建长路径目录
如果目录已经存在,返回”File exists”错误信息
下面的代码可以找出路径中的每个目录是否存在:
1 2 |
if [ -e /home/xinchen ];then #创建下一级目录 |
使用如下命令可以直接完成创建长路经目录的任务
3.6文件权限、所有权和粘滞位(略)
3.7创建不可修改的文件
通过查看/etc/mtab文件,很容易找出所有挂载分区的文件系统类型。这个文件的第一列指定了分区设备路径(如/dev/sda5).第三列指定了文件系统类型。
1 |
chattr +i file#文件设置为不可修改 |
3.8批量生成空白文件
使用touch命令。
1 2 3 |
for name in {1..100}.txt do touch $name |
如果文件已存在,touch命令会将该文件的相关时间戳改为当前时间。如果只想该某些时间戳,使用下面的命令
1 |
touch -a#只更改文件的访问时间 |
使用-d可以为时间戳指定特定的时间和日期
3.9查找符号链接及其指向目标
创建符号链接
0 条评论