一、文件的显示
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还在
从上,我们可以知道软连接与硬连接的不同,硬连接是原文件的一个副本,软连接相当于一个指向原文件的指针。
本文详细介绍Linux环境下文件的各种操作,包括显示、处理、复制、连接、重命名及删除等。通过具体命令实例,帮助读者掌握实用技巧。
173

被折叠的 条评论
为什么被折叠?



