位置:首页 > 其他技术 > Unix > UNIX 文件管理

UNIX 文件管理

UNIX中的所有数据被组织成文件。所有文件被组织成目录。这些目录被组织成一个树形结构,称为文件系统。

当使用UNIX工作以这种或那种方式,大部分的时间花在工作的文件。本在线教程将教你如何创建和删除文件,复制和重命名,创建链接到它们等。

在UNIX中,有三种基本类型的文件:

  1. 普通文件: 普通文件在系统上的文件包含数据,文字,或程序指令。在本在线教程中,以操作普通的文件为例。

  2. 目录: 目录特别及普通文件存储。对于用户熟悉Windows或Mac OS,UNIX目录相当于文件夹。

  3. 特殊文件: 一些特殊的文件提供访问硬件,如硬盘,CD-ROM驱动器,调制解调器和以太网适配器。其他特殊文件是类似的别名或快捷键,使您能够访问一个单一的文件使用不同的名称。

文件列表:

要列出存储在当前目录中的文件和目录。使用下面的命令:

$ls

下面是上述命令的示例输出:

$ls

bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work

ls命令支持,这将有助于获得更多的信息有关所列出的文件使用-1选项:

$ls -l
total 1962188

drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3
$

这里是所有列出的列信息:

  1. 第一列:表示授予该文件的文件类型和权限。下面是描述所有类型的文件。

  2. 第二列:代表所采取的内存块的文件或目录的数量。

  3. 第三栏:表示文件所有者。是谁创建了这个文件的Unix用户。

  4. 第四列:代表组的所有者。每个Unix用户将有关联的组。

  5. 第五栏:表示文件大小(以字节为单位)。

  6. 第六栏:表示当这个文件被创建或修改的最后一次的日期和时间。

  7. 第七栏:表示文件名或目录名。

在 ls -l清单的例子,每一个文件的行开始d, -,或l。这些字符表示的文件类型列出。 

Prefix 描述
- Regular file, such as an ASCII text file, binary executable, or hard link.
b Block special file. Block input/output device file such as a physical hard drive.
c Character special file. Raw input/output device file such as a physical hard drive
d Directory file that contains a listing of other files and directories.
l Symbolic link file. Links on any regular file.
p Named pipe. A mechanism for interprocess communications
s Socket used for interprocess communication.

元字符:

在Unix元字符有特殊的含义。例如*和?是元字符。我们使用*匹配0个或多个字符,问号?匹配单个字符。

示例:

$ls ch*.doc

显示所有文件,其名称以ch开始和结束的。doc:

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc c

*元字符匹配任何字符。如果想显示所有文件只是文件结束,那么可以使用下面的命令:

$ls *.doc

隐藏文件:

一个无形的文件是一个点或者句号(.)的第一个字符是。 UNIX程序(包括shell)使用这些文件来存储配置信息。

隐藏文件的一些常见的例子包括以下文件:

  • .profile: 是Bourne shell(sh)的初始化脚本

  • .kshrc: Korn shell程序(KSH)初始化脚本

  • .cshrc: C shell(csh)的初始化脚本

  • .rhosts: 远程shell配置文件

要列出隐形文件,指定给ls-a选项:

$ ls -a

.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03
$
  • 单一点 . :这表示当前目录。

  • 双点 ..:这表示父目录。

注:我已经把星号(*),只是为了显示位置,需要输入当前密码和新密码,否则系统,它不会告诉你,当键入任何字符。

创建文件:

可以使用vi编辑器来创建任何类Unix系统上的普通文件。只需给下面的命令:

$ vi filename

上面的命令,将打开一个给定文件名的文件。会需要按键来进入编辑模式。一旦在编辑模式下,就可以开始写内容在文件,如下:

This is unix file....I created it for the first time.....
I'm going to save this content in this file.

一旦完成,请执行以下步骤:

  • 按Esc键出来的编辑模式。

  • 按两个键Shift+ ZZ一起完全退出来的文件。

现在,就可以把filemame创建的文件在当前目录中。

$ vi filename
$

编辑文件:

使用vi编辑器,可以编辑现有的文件。我们将覆盖在一个单独的在线教程中详细。但总之,可以打开现有的文件如下:

$ vi filename

一旦文件被打开,在编辑模式下,可以使用 i 按键,然后,可以编辑文件。如果想在这里和那里的文件内,那么首先需要走出来的编辑模式下按ESC键,那么可以使用下面的键,将里面的一个文件:

  • l 键移动到右侧。

  • h 键移动到左侧。

  • k 键向上移动在文件中。

  • j 键向下移动一边在文件中。

因此,使用上面的键就可以将光标定位在任何想要的编辑。然后在编辑模式下,可以使用i键。编辑该文件,一旦完成后,按ESC和最后两个键Shift+ ZZ一起退出的文件。

显示文件的内容:

可以使用cat命令来查看一个文件的​​内容。下面是一个简单的例子,看看上面创建的文件的内容:

$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$

可以通过使用-b选项一起cat命令如下显示行号:

$ cat filename -b
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$

计算在一个文件中的单词:

可以使用wc命令行,字,字符包含在一个文件总数计数。以下是一个简单的例子来看看上面创建的文件的信息:

$ wc filename
2  19 103 filename
$

这里是所有的四列的细节:

  1. 第一栏:表示文件中的行的总数。

  2. 第二栏:表示文件中的总字数。

  3. 第三栏:表示文件中的字节总数。这是实际的文件大小。

  4. 第四栏:表示文件名。

在同一时间,以获得有关这些文件的信息,可以给多个文件。下面是简单的语法:

$ wc filename1 filename2 filename3

复制文件:

要复制的文件,请使用cp命令。该命令的基本语法是:

$ cp source_file destination_file

下面的例子,现有的文件的文件名创建一个副本。

$ cp filename copyfile
$

现在,发现多了一个文件在当前目录copyfile 。该文件将作为原始文件的filename完全相同。

重命名文件:

要更改名称的文件,使用mv命令。它的基本语法是:

$ mv old_file new_file

下面的例子将重命名现有文件 filename 修改为 newfile :

$ mv filename newfile
$

mv命令将现有的文件移动到新的文件完全。因此在这种情况下,在当前目录中有 newfile。

删除文件:

要删除现有的文件使用rm命令。它的基本语法是:

$ rm filename

注意:这可能是危险的,删除一个文件,因为它可能包含有用的信息。所以,要小心使用此命令时。建议使用-i选项的rm命令一起使用。

下面的例子将完全删除现有文件的文件名 filename:

$ rm filename
$

可以删除多个文件如下:

$ rm filename1 filename2 filename3
$

标准的UNIX流:

在正常情况下,每个Unix程序有三个流(文件)打开它时,它启动:

  1. stdin : 这被称为作为标准输入和与其相关的文件的描述符是0。这也表示标准输入。 UNIX程序会从STDIN读取默认的输入。

  2. stdout : 这被称为作为标准输出和1相关的文件描述符。这也表示STDOUT。 UNIX程序会写入默认输出STDOUT

  3. stderr : 这是被称为标准错误和2相关的文件描述符。这也代表STDERR。 UNIX程序会写在STDERR所有的错误消息。