命令行中对文件的操作处理

一、文件的显示

1.列表命令(ls)

ls的语法格式: ls 【option】 【dir-or-file】

选项GUN选项说明
-a--all指出当前目录中的所有文件,包括隐藏文件
-b--escape当文件名包含不可打印的特殊字符时,以八进制形式列出文件名
-d--directory列出目录名,通常与-l联用
-h--human-readable以KB、MB、GB形式显示文件大小
-i--inode对于每一个文件,在第一列列出起信息节点号
-k--block-size=1K以KB为单位显示文件大小
-l--format=long以文件的长格式列出文件
-r--reverse以文件名的反向字符排序显示文件
-R--recursive递归列出指定目录及其子目录下的所有文件
-s--size文件占用的数据块数量,非文件的实际大小

注:-l(长格式)选项

使用时,ls会按一行8列的形式逐行显示每个文件的属性。其中第一列10个字符,第一个字符表示文件的类型。常见文件类型字符如下:

-普通文件
d目录
l符号连接文件
b块特殊文件
c字符特殊文件
p管道(FIFO)文件
s套接字文件

esperantor@ubuntu:~$ ls –dl
drwxr-xr-x 37 esperantor esperantor 4096 2011-03-17 11:14 .

利用通配符显示文件

esperantor@ubuntu:~$ ls *.out
hello.out

*匹配任何数量的字符或字符串,包括空字符串
匹配相应位置的任何一个字符
[…]由方括号定义的字符集或字符范围,可以使用其中任何一个字符匹配文件名相应的位置的一个字符。字符可一一列举,也可在2个字符间用“-”表示一个范围,如【1-9】表示任何数字。
[!…]或[^…]表示可以匹配任何一个不属于给定字符集范围的字符。

2.使用cat命令显示文件内容

cat语法格式:cat 【option】 【file】

esperantor@ubuntu:~$ cat C++
#include <stdio.h>
class A
{
public:
A() { printf("A created./n");};
A(A& a) { printf("A created with copy./n");};
~A() { printf("A destroyed./n");};
};

A foo(A a)
{
A b;
return b;
}

int main(void)
{
A a;
a = foo(a);
return 0;
}

3.使用more/less命令分页显示文件

语法格式:【more|less】 【option】 【file】

4.使用head/tail命令显示文件的前/后几行

head语法格式:head 【number】 【file】

number:需要显示的行数

esperantor@ubuntu:~$ head -n 5 C++
#include <stdio.h>
class A
{
public:
A() { printf("A created./n");};

tial语法格式:tail 【number】 【-lbcf】 【file】

esperantor@ubuntu:~$ tail -n 5 C++
{
A a;
a = foo(a);
return 0;
}

5.使用stat命令查看文件统计数据

语法格式:stat 【file】

esperantor@ubuntu:~$ stat C++
  File: `C++'
  Size: 232           Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d    Inode: 144313      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/esperantor)   Gid: ( 1000/esperantor)
Access: 2011-03-17 11:02:07.839036051 +0800
Modify: 2011-03-12 16:49:19.268611021 +0800
Change: 2011-03-12 16:49:19.280611000 +0800

6.使用file命令查看文件类型

语法格式:file 【file】

esperantor@ubuntu:~$ file C++
C++: ASCII C program text

二、文件的处理

1.创建文件(touch)

语法格式:touch 【file】

esperantor@ubuntu:~$ touch test1
esperantor@ubuntu:~$ ls -il test1
133825 -rw-r--r-- 1 esperantor esperantor 0 2011-03-17 12:15 test1

2.复制文件(cp)

语法格式:cp 【option】 【source】【destination】

esperantor@ubuntu:~$ cp test1 test2
esperantor@ubuntu:~$ ls -il test2
133829 -rw-r--r-- 1 esperantor esperantor 0 2011-03-17 12:17 test2

3.连接文件

硬连接(Hard Link)

符号连接/软连接(Symbolic Link)。默认情况下,ln命令产生硬链接。

(1)cp命令创建

语法格式:cp 【–l /-s 】【source】 【destination】

硬连接

esperantor@ubuntu:~$ cp -l test1 test4
esperantor@ubuntu:~$ ls -il
total 68
……
133825 -rw-r--r-- 2 esperantor esperantor    0 2011-03-17 12:15 test1
133829 -rw-r--r-- 1 esperantor esperantor    0 2011-03-17 12:17 test2
133825 -rw-r--r-- 2 esperantor esperantor    0 2011-03-17 12:15 test4
……

软连连接
esperantor@ubuntu:~$ cp -s test1 test3
esperantor@ubuntu:~$ ls -il
total 68
……
133825 -rw-r--r-- 2 esperantor esperantor    0 2011-03-17 12:15 test1
133829 -rw-r--r-- 1 esperantor esperantor    0 2011-03-17 12:17 test2
144327 lrwxrwxrwx 1 esperantor esperantor    5 2011-03-17 12:25 test3 -> test1
133825 -rw-r--r-- 2 esperantor esperantor    0 2011-03-17 12:15 test4
……
(2)ln命令创建

语法格式:ln 【option】 【source】 【destination】

硬连接

esperantor@ubuntu:~$ ln test1 test5
esperantor@ubuntu:~$ ls -il
total 68
……
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test1
133829 -rw-r--r-- 1 esperantor esperantor    0 2011-03-17 12:17 test2
144327 lrwxrwxrwx 1 esperantor esperantor    5 2011-03-17 12:25 test3 -> test1
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test4
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test5
……

软连接

esperantor@ubuntu:~$ ln -s test1 test6
esperantor@ubuntu:~$ ls -il
total 68
……
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test1
133829 -rw-r--r-- 1 esperantor esperantor    0 2011-03-17 12:17 test2
144327 lrwxrwxrwx 1 esperantor esperantor    5 2011-03-17 12:25 test3 -> test1
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test4
133825 -rw-r--r-- 3 esperantor esperantor    0 2011-03-17 12:15 test5
144337 lrwxrwxrwx 1 esperantor esperantor    5 2011-03-17 12:32 test6 –> test1
……

4.重命(或移动)名文件(mv)

语法格式:mv 【source】 【destination】

esperantor@ubuntu:~$ mv test1 test8
esperantor@ubuntu:~$ ls -il test*
133829 -rw-r--r-- 1 esperantor esperantor 0 2011-03-17 12:17 test2
144327 lrwxrwxrwx 1 esperantor esperantor 5 2011-03-17 12:25 test3 -> test1
133825 -rw-r--r-- 3 esperantor esperantor 0 2011-03-17 12:15 test4
133825 -rw-r--r-- 3 esperantor esperantor 0 2011-03-17 12:15 test5
144337 lrwxrwxrwx 1 esperantor esperantor 5 2011-03-17 12:32 test6 -> test1
133825 -rw-r--r-- 3 esperantor esperantor 0 2011-03-17 12:15 test8

5.删除文件(rm)

语法格式:rm 【file】

esperantor@ubuntu:~$ rm test8
esperantor@ubuntu:~$ ls -il test*
133829 -rw-r--r-- 1 esperantor esperantor 0 2011-03-17 12:17 test2
144327 lrwxrwxrwx 1 esperantor esperantor 5 2011-03-17 12:25 test3 -> test1
133825 -rw-r--r-- 2 esperantor esperantor 0 2011-03-17 12:15 test4
133825 -rw-r--r-- 2 esperantor esperantor 0 2011-03-17 12:15 test5
144337 lrwxrwxrwx 1 esperantor esperantor 5 2011-03-17 12:32 test6 -> test1

从上面可以看到,当我们rm文件test8后,软连接文件依然存在,但是,当我们查看test3时,会出现

esperantor@ubuntu:~$ cat test3
cat: test3: No such file or directory

esperantor@ubuntu:~$ cat test4

test3已经不存在了,但test4还在

从上,我们可以知道软连接与硬连接的不同,硬连接是原文件的一个副本,软连接相当于一个指向原文件的指针。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值