作者:
北南南北
来自:
LinuxSir.Org
摘要:
Linux
命令行模式下来操作文件管理还是比较重要的,虽然目前在Linux桌面上能完成大部份的文件管理工作,但就效率来说,还是命令行模式更为强大。最重要的是
在文本操作界面和图形界面通用。如果您是服务器管理人员,您能体会到命令行下的文件管理工具是何等重要。本文涉及了目录和文件的显示ls、复制cp、移动
mv、删除rm、rmdir、目录的创建mkdir以及用echo、touch等工具创建空文件... ... 内容;
目录
1.3 通配符在ls命令中的应用;
1.4 获得ls 的帮助;
4.2 删除空目录工具 rmdir 和rm ;
2、移动文件或目录的命令 mv ;
3、文件或目录的复制工具cp ;
4、 目录创建工具mkdir和删除空目录工具rmdir;
5、创建一个空文件的工具:用 touch、echo、cat等工具;
6、删除文件工具rm;
7、修改文件名工具 mv
8、关于本文;
9、后记;
10、参考文档;
11、相关文档;
++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++
0、关于路径的理解;
请参考:
1、列文件或目录的信息工具 ls或dir;
ls 命令可以用于显示目录的内容,也可以显示文件的属性,比如节点、文件种类、权限、拥有者、大小、创建时间等;在目前最新版本的Linux中dir和ls命令的用法是一样的;有兴趣的不仿尝试一下;
1.1 ls 的基础语法和参数;
语法格式:
#ls [参数] [目录或文件名]
参数:
-a 显示所有文件,包含隐藏文件;包括“.“和“..“
-A 显示所有文件,包含隐藏文件,不包括“.“和“..“目录;
-B 不列出文件名以~结尾的文件;
-C 按列列出文件;
-d 仅可以查看目录的属性参数及信息;
-F 这个参数加上后,能给目录添加上/,给可执行文件加上*,给符号链接加上@ 等等,来标记文件名,目的是让用户方便查看;
-l 长格式输出
-h 习惯人们可阅读的方式来显示文件或目录的大小,比如K、M或G等;
-p 在目录的后面附加/标记;
-r 逆序列出文件;
-t 按文件最后访问(或修改)的时间排序,最新的排在最前面;
-U 按原始排序,
-L 递归显示,也就是说,当我们列某个目录的下的所有文件和目录时,能把它的下级目录的内容显示出来。
--help 获得帮助;
在这里,位于[]之内的都是可选的。如果您只输入ls ,就会列出用户所处当前目录的所有文件,用短格式输出,但不会列出隐藏文件。
判断用户所处目录的命令是pwd,也就是
[root@localhost ~]# pwd
/root
1.2 ls 的参数示例应用;
1.21 列出目录下所有文件,包含或不包含隐藏文件,-a 参数及-l参数的运用;
#ls -la [目录名]
如果不接目录名,表示输出当前用户所处目录内的所有文件,包括隐藏文件;
[root@localhost ~]# pwd
/root
[root@localhost ~]# ls -la
列出某一目录下的的文件或目录,但不包括隐藏文件,我们只用-l参数
#ls -l 目录
比如:
[root@localhost ~]# ls -l /root/
总计 13968
-rw-r--r-- 1 root root 0 04-19 14:09 123.txt
-rw------- 1 root root 1375 03-16 08:55 anaconda-ks.cfg
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root 33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4096 04-04 23:30 mkuml-2004.07.17
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root 4096 04-19 10:53 mydir
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
drwxr-xr-x 2 root root 4096 03-17 04:25 Public
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
lrwxrwxrwx 1 root root 6 04-19 11:17 yourdir -> mydir/
说明:如果以长格式输入,总共显示出八段内容:
第一段
文件种类及权限,也就是类似这样的-rw-r--r--
,我们在前面讲到,如果在这段中,第一字符表示文件的类型,如果出现-,表示普通文件。如果是d开头的就是目录。在这个例子中,123.txt是普通文
件,而mkuml-2004.07.17就是一个目录。关于文件的种类,请参考 :
rw-r--r--是权限位,我们在以后的教程中会讲到。
第二段
硬链接个数(文件系增加一个硬链接,数字会增加1,默认从1开始,1表示无硬链接文件,如果是一个目录,它的默认值应该是2。目录是不能做硬链接的)
如果我们不以长格式输出的话,可以把参数省略;
第三段
文件或目录所占用的字节数,如果您想用K来表示,请用ls -lh /root
第四段
最后访问日期
第五段
最后访问时间
第六段
文件名
[root@localhost ~]# ls /root
1.22 仅查看目录的属性的-d参数的运用示例;
[root@localhost ~]# ls -ld /etc /boot 注:查看/etc和/boot目录的信息;
drwxr-xr-x 4 root root 4096 04-11 16:22 /boot
drwxr-xr-x 108 root root 12288 04-20 12:36 /etc
1.23 查看文件或目录的inode节点,-i参数的运用;
查看文件或目录的节点,我们要用到i参数。如果节点相同,能确认他们是相同的文件,是通过通过ln 创建的硬链接文件;链接接有何用?如果您想把一个文件复制时保持原文件或目录的节点、大小、权限以及访问(或修改)时间都和原文件一致的文件。必须通过硬 链接来实现,用cp命令是不可能实现的。
比如:
[root@localhost ~]# ls -li /root
[root@localhost ~]# ls -li kernel*
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root 33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm
我们看一下kernel00.rpm 、kernel.rpm 和 kernel-2.6.15-1.2025_FC5.i686.rpm 是不是节点相同??他们的大小是不是一样,他们的访问日期是不是一样?只是他们的文件名不一样。文件名不一样没有关系,这能证明其中两个文件是由另一个文 件通过ln 创建而成。
您可以尝试着用cp 把 kernel-2.6.15-1.2025_FC5.i686.rpm 复制为kernel002.rpm ,看看能不能保持节点相同?
[root@localhost ~]# ls -li kernel*
2408272 -rw-r--r-- 1 root root 14087155 04-19 16:05 kernel002.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root 33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm
不是是kernel002.rpm 的节点和 kernel-2.6.15-1.2025_FC5.i686.rpm 不一样了?
1.24 关于排序的参数的应用;
ls 显示目录的内容时,会将文件按a到z的字母顺序显示,优先级如下;
数字
a-z
A-Z
也就是说如果不加任何排序的参数,文件名第一个字母是数字的,将优先显示;其次才是A-Z,然后才是a-z;下面是几个排序的参数,大家练习一下就知道了;
在文件的大小排序上,我们要用到-S参数;
如果是逆序排序时,我们要用到-r参数;
按最后访问的时候排序,要用到-t参数;
根据扩展名进行排序,要用到参数 -X ;
举例
[root@localhost ~]# ls
123.txt fonts.scale kernel myinstall.log upgrade.log
anaconda-ks.cfg install.log.syslog mkuml-2004.07.17-ananas.tar.bz2 plinux.txt upgrade.log.syslog
[root@localhost ~]# ls -lS /root
[root@localhost ~]# ls -lS
总计 180
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 5423 03-16 08:52 install.log.syslog
drwxr-xr-x 2 root root 4096 04-19 20:04 kernel
-rw------- 1 root root 1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 21 04-19 15:06 123.txt
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
举例:
[root@localhost ~]# ls -lr
总计 180
-rw-r--r-- 1 root root 0 03-26 18:39 upgrade.log.syslog
-rw-r--r-- 1 root root 613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root 0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root 4096 04-19 20:04 kernel