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

一、文件的显示

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还在

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

你可能感兴趣的:(Linux,ubuntu,file,access,class,c,less)