- 浏览: 600245 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
文件与目录管理:
谈了谈目录与路径之后,再来讨论一下关於文件的一些基本管理吧!文件与目录的管理上,不外乎『显示属性』、 『拷贝』、『删除文件』及『移动文件或目录』等等,由於文件与目录的管理在 Linux 当中是很重要的, 尤其是每个人自己家目录的数据也都需要注意管理!所以我们来谈一谈有关文件与目录的一些基础管理部分吧!
文件与目录的检视: ls
在Linux系统当中,这个 ls 命令可能是最常被运行的吧!因为我们随时都要知道文件或者是目录的相关资讯啊~ 不过,我们Linux的文件所记录的资讯实在是太多了,ls 没有需要全部都列出来呢~ 所以,当你只有下达 ls 时,默认显示的只有:非隐藏档的档名、 以档名进行排序及档名代表的颜色显示如此而已。举例来说, 你下达『 ls /etc 』之后,只有经过排序的档名以及以蓝色显示目录及白色显示一般文件,如此而已。
那如果我还想要加入其他的显示资讯时,可以加入上头提到的那些有用的选项呢~ 举例来说,我们之前一直用到的 -l 这个长串显示数据内容,以及将隐藏档也一起列示出来的 -a 选项等等。
其实 ls 的用法还有很多,包括查阅文件所在 i-node 号码的 ls -i 选项,以及用来进行文件排序的 -S 选项,还有用来查阅不同时间的动作的 --time=atime 等选项(更多时间说明请参考本章后面touch的说明)。而这些选项的存在都是因为 Linux 文件系统记录了很多有用的资讯的缘故。那么 Linux 的文件系统中,这些与权限、属性有关的数据放在哪里呢? 放在 i-node 里面。关於这部分,我们会在下一章继续为你作比较深入的介绍啊!
无论如何, ls 最常被使用到的功能还是那个 -l 的选项,为此,很多 distribution 在默认的情况中, 已经将 ll (L 的小写) 配置成为 ls -l 的意思了!其实,那个功能是 Bash shell 的 alias 功能呢~也就是说,我们直接输入 ll 就等於是输入 ls -l 是一样的~关於这部分,我们会在后续 bash shell 时再次的强调滴~
复制、删除与移动: cp, rm, mv
要复制文件,请使用 cp (copy) 这个命令即可~不过, cp 这个命令的用途可多了~ 除了单纯的复制之外,还可以创建连结档 (就是捷径罗),比对两文件的新旧而予以升级, 以及复制整个目录等等的功能呢!至於移动目录与文件,则使用 mv (move), 这个命令也可以直接拿来作更名 (rename) 的动作喔!至於移除吗?那就是 rm (remove) 这个命令罗~底下我们就来瞧一瞧先~
cp (复制文件或目录)
复制(cp)这个命令是非常重要的,不同身份者运行这个命令会有不同的结果产生,尤其是那个-a, -p的选项, 对於不同身份来说,差异则非常的大!底下的练习中,有的身份为root有的身份为一般帐号(在我这里用vbird这个帐号), 练习时请特别注意身份的差别喔!好!开始来做复制的练习与观察:
这个 cp 的功能很多,由於我们常常会进行一些数据的复制,所以也会常常用到这个命令的。 一般来说,我们如果去复制别人的数据 (当然,该文件你必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在默认的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是命令操作者本身。举例来说, 上面的范例二中,由於我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?^_^
由於具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件, 例如密码档 (/etc/shadow) 以及一些配置档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、运行以及文件拥有者等等), 否则,其他人还是无法针对你给予的文件进行修订的动作喔!注意注意!
范例四可有趣了!使用 -l 及 -s 都会创建所谓的连结档(link file),但是这两种连结档却有不一样的情况。这是怎么一回事啊? 那个 -l 就是所谓的实体连结(hard link),至於 -s 则是符号连结(symbolic link), 简单来说,bashrc_slink 是一个『捷径』,这个捷径会连结到bashrc去!所以你会看到档名右侧会有个指向(->)的符号!
至於bashrc_hlink文件与bashrc的属性与权限完全一模一样,与尚未进行连结前的差异则是第二栏的link数由1变成2了! 鸟哥这里先不介绍实体连结,因为实体连结涉及 i-node 的相关知识,我们下一章谈到文件系统(filesystem)时再来讨论这个问题。
总之,由於 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:
是否需要完整的保留来源文件的资讯?
来源文件是否为连结档 (symbolic link file)?
来源档是否为特殊的文件,例如 FIFO, socket 等?
来源档是否为目录?
rm (移除文件或目录)
这是移除的命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误杀,所以很多 distributions 都已经默认加入 -i 这个选项了!而如果要连目录下的东西都一起杀掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用『 rm -r 』这个命令之前,请千万注意了,因为该目录或文件『肯定』会被 root 杀掉!因为系统不会再次询问你是否要砍掉呦!所以那是个超级严重的命令下达呦! 得特别注意!不过,如果你确定该目录不要了,那么使用 rm -r 来循环杀掉是不错的方式!
另外,范例四也是很有趣的例子,我们在之前就谈过,档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -aaa- 』系统的命令就会误判啦! 那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!如果 man rm 的话,其实还有一种方法,那就是『 rm -- -aaa- 』也可以啊!
mv (移动文件与目录,或更名)
这是搬移 (move) 的意思!当你要移动文件或目录的时后,呵呵!这个命令就很重要啦! 同样的,你也可以使用 -u ( update )来测试新旧文件,看看是否需要搬移罗! 另外一个用途就是『变更档名!』,我们可以很轻易的使用 mv 来变更一个文件的档名呢!不过,在 Linux 才有的命令当中,有个 rename , 可以用来更改大量文件的档名,你可以利用 man rename 来查阅一下,也是挺有趣的命令喔!
取得路径的文件名称与目录名称
我们前面介绍的完整档名 (包含目录名称与文件名称) 当中提到,完整档名最长可以到达 4096 个字节。 那么你怎么知道那个是档名?那个是目录名?嘿嘿!就是利用斜线 (/) 来分辨啊! 其实,取得档名或者是目录名称,一般的用途应该是在写程序的时候,用来判断之用的啦~ 所以,这部分的命令可以用在第三篇内的 shell scripts 里头喔! 底下我们简单的以几个范例来谈一谈 basename 与 dirname 的用途!
谈了谈目录与路径之后,再来讨论一下关於文件的一些基本管理吧!文件与目录的管理上,不外乎『显示属性』、 『拷贝』、『删除文件』及『移动文件或目录』等等,由於文件与目录的管理在 Linux 当中是很重要的, 尤其是每个人自己家目录的数据也都需要注意管理!所以我们来谈一谈有关文件与目录的一些基础管理部分吧!
文件与目录的检视: ls
在Linux系统当中,这个 ls 命令可能是最常被运行的吧!因为我们随时都要知道文件或者是目录的相关资讯啊~ 不过,我们Linux的文件所记录的资讯实在是太多了,ls 没有需要全部都列出来呢~ 所以,当你只有下达 ls 时,默认显示的只有:非隐藏档的档名、 以档名进行排序及档名代表的颜色显示如此而已。举例来说, 你下达『 ls /etc 』之后,只有经过排序的档名以及以蓝色显示目录及白色显示一般文件,如此而已。
那如果我还想要加入其他的显示资讯时,可以加入上头提到的那些有用的选项呢~ 举例来说,我们之前一直用到的 -l 这个长串显示数据内容,以及将隐藏档也一起列示出来的 -a 选项等等。
其实 ls 的用法还有很多,包括查阅文件所在 i-node 号码的 ls -i 选项,以及用来进行文件排序的 -S 选项,还有用来查阅不同时间的动作的 --time=atime 等选项(更多时间说明请参考本章后面touch的说明)。而这些选项的存在都是因为 Linux 文件系统记录了很多有用的资讯的缘故。那么 Linux 的文件系统中,这些与权限、属性有关的数据放在哪里呢? 放在 i-node 里面。关於这部分,我们会在下一章继续为你作比较深入的介绍啊!
无论如何, ls 最常被使用到的功能还是那个 -l 的选项,为此,很多 distribution 在默认的情况中, 已经将 ll (L 的小写) 配置成为 ls -l 的意思了!其实,那个功能是 Bash shell 的 alias 功能呢~也就是说,我们直接输入 ll 就等於是输入 ls -l 是一样的~关於这部分,我们会在后续 bash shell 时再次的强调滴~
复制、删除与移动: cp, rm, mv
要复制文件,请使用 cp (copy) 这个命令即可~不过, cp 这个命令的用途可多了~ 除了单纯的复制之外,还可以创建连结档 (就是捷径罗),比对两文件的新旧而予以升级, 以及复制整个目录等等的功能呢!至於移动目录与文件,则使用 mv (move), 这个命令也可以直接拿来作更名 (rename) 的动作喔!至於移除吗?那就是 rm (remove) 这个命令罗~底下我们就来瞧一瞧先~
cp (复制文件或目录)
复制(cp)这个命令是非常重要的,不同身份者运行这个命令会有不同的结果产生,尤其是那个-a, -p的选项, 对於不同身份来说,差异则非常的大!底下的练习中,有的身份为root有的身份为一般帐号(在我这里用vbird这个帐号), 练习时请特别注意身份的差别喔!好!开始来做复制的练习与观察:
这个 cp 的功能很多,由於我们常常会进行一些数据的复制,所以也会常常用到这个命令的。 一般来说,我们如果去复制别人的数据 (当然,该文件你必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在默认的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是命令操作者本身。举例来说, 上面的范例二中,由於我是 root 的身份,因此复制过来的文件拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?^_^
由於具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件, 例如密码档 (/etc/shadow) 以及一些配置档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者, 也必须要注意到文件的权限(包含读、写、运行以及文件拥有者等等), 否则,其他人还是无法针对你给予的文件进行修订的动作喔!注意注意!
范例四可有趣了!使用 -l 及 -s 都会创建所谓的连结档(link file),但是这两种连结档却有不一样的情况。这是怎么一回事啊? 那个 -l 就是所谓的实体连结(hard link),至於 -s 则是符号连结(symbolic link), 简单来说,bashrc_slink 是一个『捷径』,这个捷径会连结到bashrc去!所以你会看到档名右侧会有个指向(->)的符号!
至於bashrc_hlink文件与bashrc的属性与权限完全一模一样,与尚未进行连结前的差异则是第二栏的link数由1变成2了! 鸟哥这里先不介绍实体连结,因为实体连结涉及 i-node 的相关知识,我们下一章谈到文件系统(filesystem)时再来讨论这个问题。
例题: 你能否使用vbird的身份,完整的复制/var/log/wtmp文件到/tmp底下,并更名为vbird_wtmp呢? 答: 实际做看看的结果如下: [vbird@www ~]$ cp -a /var/log/wtmp /tmp/vbird_wtmp [vbird@www ~]$ ls -l /var/log/wtmp /tmp/vbird_wtmp -rw-rw-r-- 1 vbird vbird 96384 9月 24 11:54 /tmp/vbird_wtmp -rw-rw-r-- 1 root utmp 96384 9月 24 11:54 /var/log/wtmp 由於vbird的身份并不能随意修改文件的拥有者与群组,因此虽然能够复制wtmp的相关权限与时间等属性, 但是与拥有者、群组相关的,原本vbird身份无法进行的动作,即使加上 -a 选项,也是无法达成完整复制权限的!
总之,由於 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到:
是否需要完整的保留来源文件的资讯?
来源文件是否为连结档 (symbolic link file)?
来源档是否为特殊的文件,例如 FIFO, socket 等?
来源档是否为目录?
rm (移除文件或目录)
这是移除的命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误杀,所以很多 distributions 都已经默认加入 -i 这个选项了!而如果要连目录下的东西都一起杀掉的话, 例如子目录里面还有子目录时,那就要使用 -r 这个选项了!不过,使用『 rm -r 』这个命令之前,请千万注意了,因为该目录或文件『肯定』会被 root 杀掉!因为系统不会再次询问你是否要砍掉呦!所以那是个超级严重的命令下达呦! 得特别注意!不过,如果你确定该目录不要了,那么使用 rm -r 来循环杀掉是不错的方式!
另外,范例四也是很有趣的例子,我们在之前就谈过,档名最好不要使用 "-" 号开头, 因为 "-" 后面接的是选项,因此,单纯的使用『 rm -aaa- 』系统的命令就会误判啦! 那如果使用后面会谈到的正规表示法时,还是会出问题的!所以,只能用避过首位字节是 "-" 的方法啦! 就是加上本目录『 ./ 』即可!如果 man rm 的话,其实还有一种方法,那就是『 rm -- -aaa- 』也可以啊!
mv (移动文件与目录,或更名)
这是搬移 (move) 的意思!当你要移动文件或目录的时后,呵呵!这个命令就很重要啦! 同样的,你也可以使用 -u ( update )来测试新旧文件,看看是否需要搬移罗! 另外一个用途就是『变更档名!』,我们可以很轻易的使用 mv 来变更一个文件的档名呢!不过,在 Linux 才有的命令当中,有个 rename , 可以用来更改大量文件的档名,你可以利用 man rename 来查阅一下,也是挺有趣的命令喔!
取得路径的文件名称与目录名称
我们前面介绍的完整档名 (包含目录名称与文件名称) 当中提到,完整档名最长可以到达 4096 个字节。 那么你怎么知道那个是档名?那个是目录名?嘿嘿!就是利用斜线 (/) 来分辨啊! 其实,取得档名或者是目录名称,一般的用途应该是在写程序的时候,用来判断之用的啦~ 所以,这部分的命令可以用在第三篇内的 shell scripts 里头喔! 底下我们简单的以几个范例来谈一谈 basename 与 dirname 的用途!
发表评论
文章已被作者锁定,不允许评论。
-
Linux ubuntu配置SSH免密登陆
2017-05-05 16:15 4651、安装 Ubuntu14.04默认安装了ssh-client ... -
Linux ubuntu虚拟机连接上网总结
2017-05-05 13:37 5121.首先查看主机的ip信息 ipconfig /all ... -
Linux七个运行级别
2015-03-03 09:20 552运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具 ... -
第二十四章 CentOS 系统配置工具: setup
2014-10-30 20:05 677系统配置除了使用手动 ... -
第二十二章 启动过程的问题解决
2014-10-28 19:34 426很多时候,我们可能因 ... -
第二十二章 Boot Loader: Grub
2014-10-27 19:44 576在看完了前面的整个启 ... -
第二十二章 核心与核心模块
2014-10-23 19:28 348谈完了整个启动的流程 ... -
第二十二章 Linux 的启动流程分析
2014-10-22 20:08 394启动不是只要按一下电 ... -
第二十一章 管理的抉择:RPM 还是 Tarball
2014-10-20 19:24 502这一直是个有趣的问题 ... -
第二十一章 YUM 线上升级机制
2014-10-15 19:33 529我们在本章一开始的地方谈到过 yum 这玩意儿,这个 yum ... -
第二十一章 SRPM 的使用 : rpmbuild
2014-10-14 19:44 966谈完了 RPM 类型的软件之后,再来我们谈一谈包含了 Sour ... -
第二十一章 RPM 软件管理程序: rpm
2014-10-13 20:10 459RPM 的使用其实不难,只要使用 rpm 这个命令即可!鸟哥最 ... -
第二十章 函式库管理
2014-10-13 19:25 479在我们的 Linux 操作系统 ... -
第二十章 Tarball 的管理与建议
2014-10-10 19:54 497在我们知道了原始码的 ... -
第二十章 用 make 进行巨集编译
2014-10-09 20:04 534在本章一开始我们提到过 make 的功能是可以简化编译过程里面 ... -
第二十章 开放源码的软件安装与升级简介
2014-10-09 19:47 441如果鸟哥想要在我的 Lin ... -
第十九章 分析登录文件
2014-10-08 19:34 408登录文件的分析是很重要的!你可以自行以 vi 进入登录文 ... -
第十九章 登录文件的轮替(logrotate)
2014-10-08 19:28 514假设我们已经将登 ... -
第十九章 syslogd :记录登录文件的服务
2014-09-28 20:11 681刚刚提到说 Linux 的登录文件主要是由 syslogd 在 ... -
第十八章 系统开启的服务
2014-09-25 19:33 718好了,现在假设你已经知道了 daemons 的启动文件放置的目 ...
相关推荐
第7章 文件管理 对于操作系统 做出了详细的讲解
操作系统作为计算机系统的核心软件,负责管理计算机硬件与软件资源,而文件管理系统是操作系统中用于管理文件资源的重要组成部分。文件系统负责将数据存储在磁盘或其他存储设备上,并提供统一的数据访问方法。文件...
第13章"文件及目录操作"深入讲解了如何在Python中进行这些操作,以下是对相关知识点的详细说明: 1. **基本文件操作**:在Python中,我们通常使用内置的`open()`函数来打开文件。`open()`函数需要两个参数,第一个...
Visual studio 2015 标准课程第七章 文件读写文件管理
在本压缩包文件中,我们聚焦于Visual C# .NET编程的一个重要领域——文件管理。文件管理是任何软件开发中的基础部分,它涉及到创建、读取、更新、删除以及处理文件的各种操作。对于新手开发者来说,掌握这些技能是至...
【目录与文件管理】是数据库系统中的一个重要组成部分,它涉及到数据的存储、组织和访问方式。在本章中,我们将深入探讨几个关键概念和技术。 首先,我们关注的是**系统环境相关类**。在.NET框架下,`Environment`...
通过理解并熟练掌握PHP5中的文件与目录操作,开发者能够更好地管理和处理服务器上的数据,为用户提供更丰富的交互体验。无论是简单地读写文本文件,还是处理复杂的文件上传,这些知识都是PHP编程中的基础。
总结来说,"第6章 目录与文件"涵盖了计算机基础中的关键概念,包括目录的层次结构、文件的类型和操作、源码管理的重要性,以及压缩文件的使用。这些知识对于任何IT从业者,无论是初学者还是资深开发者,都是必备的...
公路工程标准施工招标文件是指导公路建设项目施工过程的重要文件,其中第七章——技术规范更是核心内容,它详细规定了工程的技术要求、施工方法、质量控制、安全规定等关键环节。2018年版最终稿是对之前版本的修订和...
在操作系统实验报告“文件管理”部分,我们关注的是如何为Unix/Linux系统设计一个简单的二级文件系统。这个实验旨在让学生深入理解文件系统的内部运作机制及其功能实现。以下是该实验涉及的关键知识点: 1. 文件...
第七章:文件管理数据项基本数据项组合数据项记录记录是一组相关数据项的集合,用于描述一个对象在某个方面的属性文件文件类型文件长度文件的物理位置文件的建立时间文件操
Linux操作系统的文件管理是指对文件和目录的管理,包括文件系统的概念、文件类型、文件的分类和文件系统的结构等。 一、 Linux 文件系统的概念 文件系统是存放在已格式化的存储介质中的一种能够被操作系统管理的...
逐步了解操作系统的各个环解,为同学以后更好的进入操作系统行业,提供基础保障。
### 计算机操作系统第六章 文件管理习题解析 #### 一、选择题解析 **1. 一个文件的路径名是从()开始,逐步沿着每一级子目录向下追溯,最后到指定文件的整个通路上所有子目录名组成的一个字符串。** - **答案:A...
2. 目录和文件管理: - `Dir$`函数用于列出指定目录中的文件和子目录,可以配合`ChDir`改变当前工作目录。 - `CreateObject`方法可以创建操作系统对象,如`FileSystemObject`,用于更高级的文件和目录操作,如创建...
### 计算机操作系统课程知识点总结:文件管理 #### 一、文件管理概述 在操作系统中,文件管理是一项重要的功能,它负责管理计算机系统中的所有文件。文件管理系统提供了创建、删除、读取、写入以及查找文件的服务...
根据提供的文档内容,我们可以归纳出以下关键知识点,这些知识点涵盖了文件管理系统的基础概念和技术细节: ### 一、操作系统中的文件管理部分 #### 1. 文件系统的定义 - **定义**: 文件系统是操作系统中负责管理...
在“UNIX环境高级编程--第4章 文件和目录(下)”中,主要探讨了文件截短、文件系统以及inode等关键概念。 文件截短是一个实用功能,用于减少文件的大小。在某些情况下,可能需要从文件尾部移除数据以缩短文件长度。...
Windows Server服务器的架构与管理课程目录:【】第1章 网络操作系统概述【】第2章 规划与安装【】第3章 环境设置【】第4章 磁盘管理【】第5章 文件系统管理【】第6章 活动目录【】第7章 DNS服务器配置与管理【】...
描述中提到的“GBT 33190-2016 电子文件存储与交换格式版式文档第七章”意味着这个压缩包包含的是该标准的第七章的具体实例和示例文件,用于帮助理解和应用这一标准。OFD的第七章可能涉及了文档结构、页面管理、资源...