一、Linux基本文件管理命令
主要介绍cp、mv、rm命令的基本用法以及使用示例
- cp命令
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录
cp (选项) (参数) 常用选项: -a:此参数的效果和同时指定"-dpR"参数相同,用于实现归档; -d:复制符号链接文件本身,而非其指向的源文件; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立符号连接,而非复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。
[root@Node1 桌面]# cp -r /var/log /var/www /tmp/test/
- mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
mv(选项)(参数) 选项 -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户; -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
[root@Node1 桌面]# mv ex3 new1
- rm命令
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
rm (选项)(参数) 选项 -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; -v:显示指令的详细执行过程。
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
二、bash工作的基础特性
(1)命令执行返回值
在 Linux 下,所有的程序在结束时,都会返回一个数字值,这个值叫做返回值,或者称为错误号 ( Error Number )。
-
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
- 命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
(2)命令行展开
命令行展开特性可以一步完成需要分开成多步完成的操作
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b
三、命令行展开的两个练习
(1)创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@Node1 tmp]# mkdir -v /tmp/{a,b}_{c,d} mkdir: 已创建目录 "/tmp/a_c" mkdir: 已创建目录 "/tmp/a_d" mkdir: 已创建目录 "/tmp/b_c" mkdir: 已创建目录 "/tmp/b_d"
(2)创建/tmp/mylinux目录下的:
├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network_scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run
[root@Node1 tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network_scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} [root@Node1 tmp]# tree /tmp/mylinux/ /tmp/mylinux/ ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network_scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run 24 directories, 0 files
四、文件元数据的查看以及修改
元数据(Metadata),又称中介数据,主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能
-
元数据定义:
- 元数据就是数据的数据
- 元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的
- 任何文件系统中数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode..)等。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
-
查看文件的元数据的命令:stat
[root@Node1 ~]# stat 1.sh File: "1.sh" #文件名 Size: 139 Blocks: 8 IO Block: 4096 普通文件 #文件类型 Device: fd00h/64768d Inode: 813855 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) #文件权限以及所有者 Access: 2017-07-08 23:35:54.694489522 +0800 #访问或执行时间 Modify: 2017-07-08 23:35:52.973490408 +0800 #修改文件内容时间 Change: 2017-07-08 23:35:52.974490371 +0800 #修改文件内容、更改所有者及权限时间
- 修改文件时间戳命令:touch
touch命令有两个功能:一是用于更新已存在文件的时间戳信息;二是用来创建新的空文件。
touch(选项)(参数) -a:或--time=atime或--time=access或--time=use 只更改access time; -c:或--no-create 不建立任何文件; -m:或--time=mtime或--time=modify 只更该modify time; -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同; -t:<日期时间> 使用指定的日期时间,[[CC]YY]MMDDhhmm[.ss];
[root@Node1 ~]# touch -t 200001012233.44 1.sh #将1.sh时间戳修改为指定时间 [root@Node1 ~]# stat 1.sh #验证时间戳是否修改成功 File: "1.sh" Size: 139 Blocks: 8 IO Block: 4096 普通文件 Device: fd00h/64768d Inode: 813855 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2000-01-01 22:33:44.000000000 +0800 Modify: 2000-01-01 22:33:44.000000000 +0800 Change: 2017-07-09 16:13:35.909026238 +0800
原创文章,作者:N27_what,如若转载,请注明出处:http://www.178linux.com/79554