一、文件的显示
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
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
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还在
从上,我们可以知道软连接与硬连接的不同,硬连接是原文件的一个副本,软连接相当于一个指向原文件的指针。