unix文件管理命令

原创 2007年09月13日 19:53:00

unix文件管理命令

unix系统提供了很多命令用于管理文件和目录。它们以简单的方式完成各种特定的任务,比如删除符合指定条件的文件,重命名某些文件。下面是一些常用到的命令。

1、ls
ls是一个使用频率非常高的命令,它指指定目录的内容输出到标准输出,如果没有指定目录则输出当前工作目录的内容。如下图:

-bash-3.00$ ls
di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000    

-bash-3.00$ ls /
InstallShield  bin   dev      etc     home         kernel 
TT_DB          core  devices  export  install_tmp  lib
    


第二个例子指定了“/”目录为输出目录,使用ls的“-l”参数能够输出更加详细的信息,如下所示:

-bash-3.00$ ls -l
total 80
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Apr 13 11:23 di.c
-rwxr-xr-x 1 bugboy 9178 16576 Apr 11 16:06 ethnet
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Apr 11 15:58 ethnet.h
-rwxr-xr-x 1 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000


为了节省,我省略掉了部份输出内容,但是不影响讲解。第一行输出的是目录下的文件所占用的内存块数。随后的各行输出按从左到右的顺序分别为:
文件和目录的权限  到文件或者目录的硬连接数  文件的拥有者  文件所属的组  文件大小  最后一些修改的时间  文件/目录名

2、cd
cd(change directory)命令改变当前工作目录为指定目录。

-bash-3.00$ pwd
/home/b/o/bugboy
-bash-3.00$ cd /
-bash-3.00$ pwd
/
-bash-3.00$ cd ~
-bash-3.00$ pwd
/home/b/o/bugboy
-bash-3.00$ cd -

/
"cd ~"命令把当前工作目录切换到用户的主目录,"cd -"命令回到上一个历史工作目录,即执行上一次cd命令前的工作目录。

3、mkdir, rmdir
mkdir命令创建一个目录,rmdir删除一个空目录。
-bash-3.00$ ls
di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000
-bash-3.00$ mkdir test
-bash-3.00$ ls
di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000  test

在创建多层目录时,如果父目录不存在,可以给mkdir命令加“-p“参数创建父目录。

-bash-3.00$ ls
di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000  test
-bash-3.00$ mkdir -p a/b/c
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000  test
-bash-3.00$ ls -R
.:
a  di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000  test

./a:
b

./a/b:
c

./a/b/c:

./t1000:

./test:

-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000  test
-bash-3.00$ rmdir test
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  kstat  kstat.c  t1000

4、cp, mv, rm
cp (copy)命令,顾名思义就是复制文件/目录,cp命令有两个参数,一个是源文件/目录,一个是目标地址。
mv (move)命令,把文件/目录从一个地方移动到另一个地方,该命令也可以用来重命名文件/目录。
rm (remove)命令,删除文件/目录。

这三个命令都有以下参数表示相同的意思
-f force  强制移动文件,即使用户没有写权限
-i interactive  交互式,询问用户确认操作
-b backup  备份被覆盖的文件(仅对cp和mv命令)
-r/-R recursive  复制/删除整个目录(仅对cp和rm命令)

5、ln
ln命令创建一个链接(硬链接/符号链接)。
符号链接,指向一个文件,相当于一个文件索引,符号链接里保存它的源文件名。
硬链接,指向一个存放文件的物理磁盘空间。

-bash-3.00$ ln -s ethnet sys_link
-bash-3.00$ ls -l
total 84
drwxr-xr-x 3 bugboy 9178  4096 Sep 13 16:35 a
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Apr 13 11:23 di.c
-rwxr-xr-x 1 bugboy 9178 16576 Apr 11 16:06 ethnet
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Apr 11 15:58 ethnet.h
-rwxr-xr-x 1 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
lrwxrwxrwx 1 bugboy 9178     6 Sep 13 17:04 sys_link -> ethnet
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000
-bash-3.00$ ln kstat hard_link
-bash-3.00$ ls -l
total 72
drwxr-xr-x 3 bugboy 9178  4096 Sep 13 16:35 a
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Apr 13 11:23 di.c
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Apr 11 15:58 ethnet.h
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 hard_link
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
lrwxrwxrwx 1 bugboy 9178     6 Sep 13 17:04 sys_link -> ethnet
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000

删除一个符号链接指向的文件,符号链接并不会被删除,但是会使得符号链接失效。
删除一个硬链接指向的文件时,文件并不会被删除,当文件的硬链接数减为0的时候文件才会被删除。

6、touch
touch命令用于创建文件或者修改文件的最后修改时间。如果指定的文件存在,则修改文件的最后修改时间为当前的系统时间,如果指定的文件不存在,则创建文件。可以用-t参数来指定一个时间为文件的最后修改时间。如下所示:

-bash-3.00$ ls -l
total 72
drwxr-xr-x 3 bugboy 9178  4096 Sep 13 16:35 a
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Apr 13 11:23 di.c
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Apr 11 15:58 ethnet.h
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 hard_link
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
lrwxrwxrwx 1 bugboy 9178     6 Sep 13 17:04 sys_link -> ethnet
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000
-bash-3.00$ touch di.c
-bash-3.00$ ls -l
total 72
drwxr-xr-x 3 bugboy 9178  4096 Sep 13 16:35 a
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Sep 13 17:16 di.c
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Apr 11 15:58 ethnet.h
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 hard_link
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
lrwxrwxrwx 1 bugboy 9178     6 Sep 13 17:04 sys_link -> ethnet
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000
-bash-3.00$ touch ethnet.h -t 200709021200
-bash-3.00$ ls -l
total 72
drwxr-xr-x 3 bugboy 9178  4096 Sep 13 16:35 a
-rwxr-xr-x 1 bugboy 9178  7224 Apr 13 11:23 di
-rw-r--r-- 1 bugboy 9178   427 Sep 13 17:16 di.c
-rw-r--r-- 1 bugboy 9178 27030 Apr 11 15:58 ethnet.c
-rw-r--r-- 1 bugboy 9178  1234 Sep  2 12:00 ethnet.h
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 hard_link
-rwxr-xr-x 2 bugboy 9178  7496 Apr 11 09:38 kstat
-rw-r--r-- 1 bugboy 9178   815 Apr 11 09:37 kstat.c
lrwxrwxrwx 1 bugboy 9178     6 Sep 13 17:04 sys_link -> ethnet
drwx------ 5 bugboy 9178  4096 Apr 19 14:28 t1000


7、df, du
df和du显示磁盘的使用情况,df是对整个文件系统的,而du只对指定文件/目录。利用“-h”参数按人们比较容易理解的格式输出。

-bash-3.00$ du -h
56K     ./.sunstudio/user_info
60K     ./.sunstudio
52K     ./t1000/.sunstudio/user_info
56K     ./t1000/.sunstudio
8.0K    ./t1000/.ssh
4.0K    ./t1000/.sunw/pkcs11_softtoken/private
4.0K    ./t1000/.sunw/pkcs11_softtoken/public
16K     ./t1000/.sunw/pkcs11_softtoken
20K     ./t1000/.sunw
104K    ./t1000
8.0K    ./.ssh
4.0K    ./.sunw/pkcs11_softtoken/private
4.0K    ./.sunw/pkcs11_softtoken/public
16K     ./.sunw/pkcs11_softtoken
20K     ./.sunw
4.0K    ./a/b/c
8.0K    ./a/b
12K     ./a
276K    .

8、echo
回显指定的字符串。
-bash-3.00$ echo "I am plusboy"
I am plusboy

9、pwd
pwd (print working directory) 输出当前工作目录。

10、cat
输出文件的内容,也可以用于创建一个文件。
-bash-3.00$ cat > test_file
afasdf
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  hard_link  kstat  kstat.c  sys_link  t1000  test_file
-bash-3.00$ cat test_file
afasdf
-bash-3.00$

11、wc, head, tail
wc (word count) 统计给定文件的行数/单词数/字节数。
-bash-3.00$ wc ethnet.c
 1098  3102 27030 ethnet.c

head 输出文件的头部内容
tail 输出文件的尾部内容

head和tail命令可以通过“-n”参数指定要输出多少行。
-bash-3.00$ head -n 2 ethnet.c
/**************************************************************************
   File: eth_net.c

  
tail命令还可以通过“-f”参数来观察文件的尾部变化,这个命令对查看日志文件的变化特别有用。
head和tail命令相结合还可以查看文件中从第m行到第n行的内容。例如
-bash-3.00$ head -n 100 ethnet.c  | tail -n 20
            break;
        }
    }

    if (inst_len > 0) {
        *instance = (char*) malloc(inst_len + 1);
        strncpy(*instance, ch + 1, inst_len);
        *((*instance) + inst_len) = '/0';
    } else {
        *instance = NULL;
    }

    /* Get other string */
    module_len = if_len - inst_len;
    if (module_len > 0) {
        *module = (char*)malloc(module_len + 1);
        strncpy(*module, if_name, module_len);
        *((*module) + module_len) = '/0';
    } else {
        *module = NULL;
       
查看文件中第80行到第100行的内容。


12、more, less
more和less可以查看整个文件的内容,不同的是more命令一次显示完整个文件的内容,如果文件比较大,前面的内容可能就看不到了;而less可以分页显示。

13、scp
scp (ssh copy),把文件从一台主机通过ssh复制到另一台主机上。
-bash-3.00$scp file user@remote_host:/tmp

14、file
file命令查看指定文件的类型
-bash-3.00$ file ethnet.c
ethnet.c:       ascii text
-bash-3.00$ file ethnet
ethnet:         empty file
-bash-3.00$ file hard_link
hard_link:      ELF 32-bit LSB executable 80386 Version 1, dynamically linked, not stripped, no debugging information available

15、tar, gzip, gunzip

tar 把若干文件打包成一个文件
gzip 压缩文件
gunzip 解压文件

-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  hard_link  kstat  kstat.c  sys_link  t1000  test_file
-bash-3.00$ tar cvf test.tar *.c
a di.c 1K
a ethnet.c 27K
a kstat.c 1K
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  hard_link  kstat  kstat.c  sys_link  t1000  test.tar  test_file
-bash-3.00$ gzip test.tar
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  hard_link  kstat  kstat.c  sys_link  t1000  test.tar.gz  test_file
-bash-3.00$ gunzip test.tar.gz
-bash-3.00$ ls
a  di  di.c  ethnet  ethnet.c  ethnet.h  hard_link  kstat  kstat.c  sys_link  t1000  test.tar  test_file


感谢sun unix-center,本文提供的例子都是在上面完成的 

一、Linux/UNIX操作命令积累【cd、ls、su】

在使用Linux/UNIX系统时,经常会使用文本界面去设置系统或操作系统,作者本人在工作的过程也在不断接触这方面的命令,所以为此特酝酿、准备、开始了本文的编写。本文主要记录自己平时遇到的一些Linux...
  • ma_hoking
  • ma_hoking
  • 2014年08月23日 16:50
  • 2533

Linux/Unix下tar命令详解

tar命令是Linux/Unix系统下的打包压缩工具,可以将多个文件合并为一个文件,打包后的文件后缀为“.tar”。 这里首先需要明确两个概念:打包和压缩。打包是指将一大堆文件或目录合并成一个总的...
  • guoweimelon
  • guoweimelon
  • 2016年03月01日 10:18
  • 1960

【Unix/Linux】【命令】【文件,目录操作工具】列出所有子目录与文件——ls (ll)命令

ls命令是Linux下最常用的命令。ls命令就是list的缩写。缺省下ls用来打印当前目录的清单。如果ls指定其他目录,那么就会显式指定目录里的文件及文件夹清单。通过ls命令不仅可以查看linux文件...
  • robinjwong
  • robinjwong
  • 2014年09月15日 16:14
  • 9805

实验3:Unix/Linux权限和文件管理命令

实验3:Unix/Linux权限和文件管理命令 1、实验目的 Unix/Linux权限和文件管理命令; Unix/Linux文件系统的使用; 与文件系统管理相关的其它命令。 2、实现设备 ...
  • gz153016
  • gz153016
  • 2016年04月27日 16:09
  • 814

UNIX文件目录管理基本命令之移动光标屏幕翻滚插入文本

弈安传媒科技 2017-04-30 19:51 5.1移动光标类命令 操作 描述 nG 光标移至第 n行首 n$ 光标移至第 n行尾 M 光标移至屏幕中间行 L 光标移至屏幕...
  • u011277123
  • u011277123
  • 2017年05月02日 08:55
  • 260

IBM的LPI复习资料之LPI101-Topic103 :GNU和Unix命令(3)文件和目录管理

引言:你可能已经听说过在Linux中一切皆是文件,所以一定要打好基础,把文件和目录的管理如查找、列出、移动、复制、打包等学扎实。本文针对LPI 101考试,当然读者也可以为了兴趣来学习。 摘要:本文...
  • smstong
  • smstong
  • 2013年05月09日 15:57
  • 2122

UNIX文件目录管理基本命令之who登录当前系统用户信息

弈安传媒科技 2017-04-30 19:47 语法: /usr/bin/who [-uTlHqpdbrtas] [file] /usr/bin/who -q [-n x] [fil...
  • u011277123
  • u011277123
  • 2017年05月02日 13:00
  • 347

unix命令子文件6

  • 2007年08月28日 09:51
  • 15KB
  • 下载

unix文档(命令子文件)

  • 2007年08月27日 18:07
  • 13KB
  • 下载

UNIX文件查找命令详述

  • 2014年07月10日 12:46
  • 20KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:unix文件管理命令
举报原因:
原因补充:

(最多只允许输入30个字)