centos 6.5 文件目录管理

Linux不存在像Windows那样分盘符的概念,Linux在安装之后就以文件目录的形式来进行管理,存储。即当我们安装完系统之后,我们就会看到有一堆的目录出现在根目录下。同时Linux使用正斜杠“/”,而不是反斜杠“\”来标识目录。

先来个例子:

用户间文件共享:

共享文件对一个团队来说很重要,团队成员通常需要在一台服务器上共同完成一项任务。下面介绍如何实现用户间共享文件,假设这个团队的成员在服务器上的用户名为lucy,liwei,tian,他们属于workgroup工作组。可以用一下命令来模拟这个场景:

## 新建一个用户名为workgroup的用户组
$ sudo groupadd workgroup
## 新建用户并归入workgroup 用户组
$ sudo useradd  -G workgroup  lucy
$ sudo passwd lucy

$ sudo useradd  -G workgroup  liwei
$ sudo passwd liwei

$ sudo useradd  -G workgroup  tian
$ sudo passwd tian

首先在/home目录下新建一个work目录,作为这个小组的工作目录,注意这个需要root权限的哦。

$ cd home/
$ sudo mkdir work    ##  建立一个名为work的目录

现在任何人都可以访问这个新建的目录,而只有root用户具有该目录的写权限。现在我们希望前面我们创建的workgroup具有读写权限,并禁止其他无关的用户查看这个目录。

$ sudo chgrp workgroup work/    ## 将work目录的所有权交给workgroup组
$ sudo chmod g+rwx work/    ## 增加workgroup组对work目录的读,写,执行权限
$ sudo chmod 0-rwx work/  ## 撤销其他用户对work目录的读,写,执行权限

接下来把这个目录交给一个组长liwei

$ sudo chown liwei work/    ##  将work目录的所有者更改为liwei用户

现在所有属于这个组的成员都可以访问并修改这个目录中的内容了,而其他未经过授权的用户,除了root外都无法开导里面的内容。举例来说,liwei在work目录下新建了一个名为test的文件,那么同属于一个组的tian如果认为这个文件没什么必要,可以有权限删除它。

$ su liwei    ## 切换到用户liwei
$ cd /home/work
$ touch test    ##  建立一个空文件test
$ su tian     ##切换到用户tian
$ cd /home/work/
$ rm test       ##   删除test文件

 建立文件与目录

建立目录:mkdir

mkdir命令可以一次创建一个或者是多个目录,下面的命令在用户主目录下建立两个目录:document,picture

$ cd ~     ##   进入用户主目录
$ mkdir document picture        ##  新建两个目录

用户也可以使用绝对路径来新建文件

$ mkdir ~/picture/temp        ##    在主目录下新建temp的目录

由于主目录先picture 这个目录已经存在,所以这条命令是合法的,但当用户试图运行下面的命令,mkdir将提示有错

$ mkdir ~tempx/job 
mkdir:无法创建目录

但是可以使用-p选项,来完整地创建一个子目录结构

$ mkdir -p  ~tempx/job 

建立一个空文件:touch

touch使用非常简单,只需在后面跟上一个文件名作为参数。下面这个命令在当前目录下新建一个名为hello的文件

$ touch hello    

touch命令的另一个用途是更新一个文件的建立日期与时间。

移动,复制与删除

1、移动与重命名:mv

mv这个命令用来移动文件,下面这个命令将hello文件移动到bin目录下

$ mv hello bin/

当然也可以用来移动目录,下面这条命令把photos目录移动到【桌面】这个目录下

$ mv photos/  桌面/

mv再把一个文件或者是目录移动到目标目录中的时候,如果出现了同名的文件的时候会是什么样子呢?

如果出现同名的文件将会覆盖掉目标文件中的同名文件。别担心Linux提供了一个-i的选项用来提示用户石是否要覆盖这个文件,如下:

$ mv -i  hello  test/                    ##test目录下有一个hello文件
mv:是否覆盖“test/hello”?

回到y表示覆盖,回答n表示跳过这个文件。

另一个有一用的选项是-b,这个选项也可以解决上述问题。在移动文件前,首先在目标目录的同名文件的文件名后加一个“~”,从而避免了这个文件被覆盖。

$ mv -b hello test/
$ cd  test/
$ ls
hello    hello~

在Linux中没有重命名这个命令,重命名无非就是同一个文件在同一个目录下移动,这个mv就可以解决了,

$ mv hello~ hello_bak
$ ls
hello hello_back

mv可以在移动文件和目录的同时实现重命名。

复制文件与目录:cp

cp命令用来复制文件与目录,下面这个条命令将test.js复制到test目录下

$ cp test.js test/

和mv命令一样,cp默认情况下会覆盖目标目录下的同名文件,像上面一样可以使用-i命令对这种情况进行提示。也可使用-b选项对同名文件改名后在复制。

$ cp -b test.js test/
$ cd test/
$ ls
test.js       test.js~

cp命令在执行复制任务的时候会自动的跳过目录。

$ cp test/ 桌面/
cp:略过目录"test/"

可以使用-r选项来解决这个问题,这个选项将子目录连同其中的文件一起复制到另一个子目录下:

$ cp -r test/ 桌面/

删除目录和文件:rmdir和rm

 

posted @ 2015-01-11 01:43  都市烟火  阅读(4525)  评论(0编辑  收藏  举报