Linux----3-----文件相关操作
来源:互联网 发布:上海华腾软件系统 编辑:程序博客网 时间:2024/06/08 13:51
Linux----3-----文件相关操作
----------------------------------------------------------------------------------------------------------------------
一:Linux文件系统
1:linux的文件和目录都被组织成一个根节点开始的倒置树状结构.
说明:①文件系统的最顶层是由根目录开始的,系统使用" /"表示根目录。其中目录就是文件夹,目录中即可以存放文件,也可以存放其他子目录。文件中存储的是真正的信息。
②目录名和文件名是区分大小字符的,完整的文件名是由一连串的目录名或者文件路径组成的,其中每一个目录由/来分割。
③Linux中有两个特殊的目录:一个是用户所在的工作目录,也叫当前目录,可以用" ."表示;另外一个是当前工作目录的上一层目录,也叫父目录,可以用".."表示。
2:Linux系统中的一些重要目录
Linux系统采用文件系统层次标准(FHS)的文件结构,该标准一共定义了两层规范:第一层FHS只定义了根目录之下各个主要目录应该存放的文件(或者子目录)。第二层定义针对/user和/var两个目录的子目录定义(如在user中存放的share目录应该共享)。
说明:
①Linux中共有三个bin目录,bin目录存放的是常用的可执行文件即命令和程序(如su和date);一个为根目录/bin、一个为/usr/bin两个bin中存放的数据大部分相同。第三个usr/local/bin默认是空的。
②sbin目录用于存放系统的可执行文件,同样有三个:/sbin、/usr/sbin、/usr/sbin/local/sbin(默认这个也是空的);
③Linux一个重要的用户使用最多目录:家目录。作用存放用户自己的文件或目录,每当用户登录linux系统时就会自动进入家目录。其中超级用户root的目录是/root。普通用户的家目录被存放在家目录/home至下,并以用于用户名为最后的子目录。如/home/cat.
④挂载点目录:操作系统检测到可移除式硬件被加入到文件系统时,就会产生一个挂载点,通常会被挂载到/media或者mnt目录。
根目录下的目录说明:
/bin 基础系统所需要的那些命令位于此目录,也是最小系统所需要的命令;比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可 以使用的命令。做为基础系统所需要的最基础的命令就是放在这里。
/boot Linux的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
/dev 设备文件存储目录,比如声卡、磁盘... ...
/etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;
/home 普通用户家目录默认存放目录;
/lib 库文件存放目录
/lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系 统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
/media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录 ;CDROM/DVD自动挂载后,也会在这个目录中创建一 个目录,类似cdrom 的目录。这个只有在最新的发行套件上才有,比如Fedora Core 4.0 5.0 等。可以参看/etc/fstab的定义;
/mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这 里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom 。
/opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就 可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/目录 。
/proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真 正的文件系统,它的定义可以参见 /etc/fstab 。
/root Linux超级权限用户root的家目录;
/sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin;/usr/X11R6/sbin 或/usr/local/sbin目录是相似的; 我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。
/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
/usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服 务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man或/usr/share/doc,普通用户可执行文 件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;还有程 序的头文件存放目录/usr/include。
/var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存 放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;
3:Linux文件相对路径的说明
(1)除字符“/”外,所有字符都能使用,如果一个文件名包含了空格,那么使用时候要用引号将文件名括起来。
(2)目录名和文件名不能超过255个字符
(3)目录名和文件名区分大小写的。
(4)文件扩展名对Linux系统没有特殊的含义
(5)一个绝对路径必须以正斜线/开始。相对路径不是以正斜线/开始的,它只能包含从当前目录进行的一个遍历。
二:文件系统的相关操作指令
1:pwd (print working directory)打印工作目录
[dog@localhost dog]$ pwd
/home/dog
[root@localhost root]# pwd
/root
说明:pwd是 print working directory 打印工作目录的缩写,显示结构就是用户的家目录。
2:cd (change directory)切换目录
(1)使用绝对路径
[dog@localhost dog]$ cd /home
[dog@localhost home]$ pwd
/home
[dog@localhost home]$ cd /home/dog
[dog@localhost dog]$ pwd
/home/dog
(2)使用".."进入上一级目录
[dog@localhost dog]$ cd ..
[dog@localhost home]$ pwd
/home
(3)使用相对路径
[dog@localhost home]$ cd dog
[dog@localhost dog]$ pwd
/home/dog
(4)使用“~”或空白切换到用户的家目录
[dog@localhost /]$ cd tmp
[dog@localhost tmp]$ cd vmware-tools-distrib
[dog@localhost vmware-tools-distrib]$ cd ~ /dog
[dog@localhost dog]$ pwd
/home/dog
说明:使用cd~ 可以快速的从其他文件路径快速回到家目录,使用cd就不行了.这就是cd ~ 和cd之间的小差别。所谓家目录对于普通用户就是/home/用户名;对于root用户就是 /root.
(5)使用 "-"切换到用户之前的工作目录
[dog@localhost dog]$ cd -
/tmp/vmware-tools-distrib
[dog@localhost vmware-tools-distrib]$
说明:可以看出使用这个命令能够从dog 目录直接到了上次的目录
(6)使用系统变量$HOME切换到了用户的家目录
[dog@localhost vmware-tools-distrib]$ cd $HOME
[dog@localhost dog]$ pwd
/home/dog
说明:可以看出这个命令也能从其他目录直接到当前的目录的跳转。
说明:~ $HOME不仅可以在CD中使用,也可以在其他指令中使用,两个可以快速的到家目录。
3:ls命令列出目录中的相关内容
语法命令:ls [optiops][directories|Files]
说明:参数一可以有多个选项, 参数二也可以有多个文件或者目录。
(1)可以使用“.”和 “..”进行选择当前目录或者上一级目录
[dog@localhost dog]$ ls ..
cat dog lost+found
(2)可以使用 ls /命令来显示根目录中的内容(无论此时在哪个目录都能使用)
[dog@localhost dog]$ ls /
bin dev home lib misc opt root tftpboot usr
boot etc initrd lost+found mnt proc sbin tmp var
说明:ls /此后可以跟上任意文件或者目录名,不管此时在何种路径
(3)通过 ls -F 指令可以显示文件的文件的类型。
①/: 表示目录
②*:表示可执行文件
③什么都没有:纯文本文件或者ASCII文件
④@:表示符号链接
(4)通过ls -a指令显示全部的文件包括隐藏文件
(5)通过ls -l指令显示文件的详细资料
(6)可以一次同时显示多个文件的内容 [dog@localhost dog]$ ls /home /bin
(7)可以通过ls -lh设置显示文件大小为十进制式
(8)如果只想了解目录本身的命令可用方法 ls -ldh
(9)可以使用ls -lR参数可以递归列举出文件目录以及文件目录的子文件
[dog@localhost dog]$ ls -ldh /home
drwxr-xr-x 5 root root 4.0K Nov 30 10:06 /home
4:cp命令复制文件和目录
使用cp命令可以将一个或多个文件或目录从一个位置复制到另外一个位置,
命令格式如下:cp [-option(s)] source(s) target
说明:options是命令的选项, 可选择以下几种
-i : 在覆盖之前给提示出信息
-r:递归复制,当复制一个目录时,复制该目录下所有的内容
-p:保留一些特有的属性,如时间戳
-f:若目标文件已经存在,系统不询问而是强加复制,即直接覆盖掉原有的文件。
注意:cp命令的拷贝的源文件可以有多个,而目的文件只能有一个
(1)在本录里复制文件到本目录
[root@localhost root]# cd /tmp
[root@localhost tmp]# ls -l
-rw-r--r-- 1 root root 5054 Dec 1 08:25 app100.sxw
[root@localhost tmp]# cp app100.sxw app101.sxw
[root@localhost tmp]# ls -l
-rw-r--r-- 1 root root 5054 Dec 1 08:25 app100.sxw
-rw-r--r-- 1 root root 5054 Dec 1 08:30 app101.sxw
说明:①在本录中复制,则必须先切换到待复制的目录中,才能复制成功。
②凡是提示cp: omitting directory `vmware-root'说明待复制的是一个目录,必须加上一个参数-r ,说明是递复制目录。
③如果需要复制的目录和文件与原来文件的属性时间戳一样则可以用 -p 参数。这样就可以了。
(2)将一个文件或者多个文件复制到指定的目录
[root@localhost tmp]# cp app100 app101 vmware-root
[root@localhost tmp]# cd vmware-root
[root@localhost vmware-root]# ls
app100 app101
由于 vmware-root在tmp文件中,所以只写出相对的路径即可,然后再进入vmware-root目录可以看出已经复制成功。
(3)使用文件通配符*的方法将多个文件复制到指定文件
[root@localhost tmp]# cp -r app* vmware-root
[root@localhost tmp]# cd vmware-root
[root@localhost vmware-root]# ls
app100 app101
说明:使用app*表示要复制以app开头的所有文件。
5:使用mv指令移动文件
(1)使用mv指令可以将一个文件或者多个文件从一个目录移动到另外一个目录中。
[root@localhost tmp]# mv app100 app101 /home/cat
[root@localhost root]# su - cat
[cat@localhost cat]$ cd ~
[cat@localhost cat]$ ls
app100 app101
可以看出将 /tmp目录中的 app100 app101 目录移动到了 cat的家目录中
(2)使用mv指令改变一个文件的文件名
[cat@localhost home]$ mv cat/app100 cat/ad100
[cat@localhost home]$ cd cat
[cat@localhost cat]$ ls
ad100 app101
可以看出mv指令其实将cat目录中的app100修改为了ad100.
(3)也可以使用mv指令直接修改目录名
[cat@localhost cat]$ mv ad100 app100
[cat@localhost cat]$ ls
app100 app101
可以看出在目录cat下使用mv指令将ad100 修改为了app100
说明:使用mv不仅可以移动文件目录也可以移动目录中的子文件。
总结:(1)如果指定目标不存在,系统将源文件和目录名更改为目标文件或目录名
(2)如果目的已存在,并且是文件,系统将指定的源文件更名为目标文件的名称并覆盖内容。
(3)如果目的已存在,并且是目录,系统把指定的源文件移动到这个目录中,并且文件名与源文件名相同。
6:使用mldir创建目录
指令格式: mkdir 目录名
说明:目录名即可以是相对路径,也可以是绝对路径。
makdir -p :可以创建出指定路径中不存在的目录。
[cat@localhost tmp]$ mkdir ~/app103/ad1
mkdir: cannot create directory `/home/cat/app103/ad1': No such file or directory
[cat@localhost tmp]$ mkdir -p ~/app103/ad1
[cat@localhost cat]$ ls -lF app103
total 4
drwxrwxr-x 2 cat cat 4096 Dec 1 10:19 ad1/
说明:可以看出原本其中没有app103目录加入了 -p指令后,就能够创建出没有目录的路径。
7:使用touch命令创建文件
指令格式: touch 文件名
说明:文件名即可以使用绝对路径名,也可以使用相对路径名,而且可以是多个文件,文件名之间用空格隔开。
[cat@localhost app101]$ touch ad001 ad002 ad003
[cat@localhost app101]$ ls -f
. .. ad001 ad002 ad003
total 0
-rw-rw-r-- 1 cat cat 0 Dec 1 10:56 ad001
-rw-rw-r-- 1 cat cat 0 Dec 1 10:56 ad002
-rw-rw-r-- 1 cat cat 0 Dec 1 10:56 ad003
[cat@localhost app101]$ touch ad003
[cat@localhost app101]$ ls -l
total 0
-rw-rw-r-- 1 cat cat 0 Dec 1 10:56 ad001
-rw-rw-r-- 1 cat cat 0 Dec 1 10:56 ad002
-rw-rw-r-- 1 cat cat 0 Dec 1 10:57 ad003
说明:(1)使用touch能够一次同时创建出多个文件
(2)使用touch在创建同名文件时,touch会将文件和目录的时间戳改为当前目录和文件的时间戳。
8:使用rm命令删除文件
指令格式:rm [-option(s)] files|directories
说明:(1)可以有多个文件或者多个目录
(2)-option(s)为命令的选项:
①-i:交互式 ②-r:递归式③-f:强制式
(1)同时删除多个文件:
[cat@localhost app101]$ rm ad001 ad002
[cat@localhost app101]$ ls
ad003
(2)使用文件通配符*的方法将删除多个文件
[cat@localhost app101]$ ls
ad001 ad002 ad003
[cat@localhost app101]$ rm -r ad*
[cat@localhost app101]$ ls
[cat@localhost app101]$ ls -l
total 0
可以看出:通过ad *可以将所有的文件删除,注意这里通过-r递归的删除了目录中的每一个文件。
9:使用rmdir 或者rm -r删除目录
指令格式:rmdir 目录名
说明:(1)要删除目录必须返回该目录的父目录
(2)使用rmdir只能删除空目录,即要删除的目录中既不能包括目录,也不能包括文件。
(3)使用rm -r则可以递归的方式删除目录。
[cat@localhost app101]$ ls
ad01 ad02 ad03
[cat@localhost app101]$ cd ..
[cat@localhost tmp]$ rmdir app101
rmdir: `app101': Directory not empty
- Linux----3-----文件相关操作
- linux文件相关操作
- Linux文件相关操作
- Linux文件相关操作
- linux C文件操作相关
- linux c 文件操作相关
- Linux脚本文件相关操作
- linux文件操作相关函数
- linux 文件操作相关命令
- Linux---快捷键+文件相关操作
- linux文件操作相关命令
- linux 中对文件的相关操作
- linux 下利用vi操作文件相关
- Linux常用命令 5 文件相关操作
- Linux文件目录操作相关命令
- Linux C 文件操作相关整理
- 高效 Linux 4 文件相关操作
- Linux文件权限管理及相关操作
- Using Custom Draw
- getCountryCityByIp
- mysql 获取当前日期及格式化
- hibernate 锁查询
- 浅谈J2me游戏如何快速移植到Android
- Linux----3-----文件相关操作
- MBR简介
- flash wmode参数详解
- JNI进一步理解
- android 快速入门
- QTP问题修改:This run was performed on Internet Explorer 7.x without the required 'Enable Tabbed Browsing
- 我们忽略的八个哲理
- 【数据处理】时间格式转换, 系统日期+时间 < -- > DEC格式时间
- 无时无刻不蹭网,使用6款WIFI检测工具