1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cp复制,mv移动,rm删除
1、cp:
1,用法:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
2,规则
当源是文件:
目标不存在时:新建目标,并将源的内容填充至目标中;
目标存在时:1,如果目标是文件,则覆盖,可使用-i参数提醒;2,如果目标是目录,则在目标下新建与源同名的文件,并将源内容填充入内
当源是多个文件时:目标必为目录,如果目标不存在,则不能复制
如果源是目录,需使用-r选项,cp默认不支持目录复制
目标不存在时:创建指定目录,复制源目录中的所有文件至目标中;
目标存在时:1,目标是文件,报错;2,目标是目录,复制进去
3,常用选项:
-i:交互式
-r,-R:递归复制目录及其内部所有内容
-a:归档
-d: --no-dereference --preserv=links
--preserve[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp:时间戳
xattr:扩展文件属性
context:上下文
links:链接
all:所有
-p:保留权限,属主属组及时间戳 = --preserv=mode,ownership,timestamp
-v:--verbose
-f:--force
2、mv:move移动文件
如果SRC是单个文件:
若DEST不存在,则剪切源文件至新目录下,并重命名成新名字
如果SRC是目录,则把目录下所有文件都移动过去
3、rm:remove,删除
常用选项:
-i:交互式
-f:强制删除
-r:递归
rm:-rf,强制递归删除
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
命令执行状态:bash使用特殊变量$?保存最近一条命令的执行状态结果:其中0表示成功;1-255表示失败。
命令行展开:
1,~:展开为用户的主目录;
2,~USERNAME:展开为指定用户的主目录
3,{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
如:mkdir -p 2/{bin,sbin,usr/{bin,sbin}}
mkdir -p 1/{x,y}_m/{m,n}
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
# mkdir /tmp/{a,b}_{c,d}
(2)、创建/tmp/mylinux目录下的:
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
# mkdir -p /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}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件名,大小,块,IO块,设备,Inode,硬链接,权限,Uid,Gid,环境,时间戳
stat查看文件元数据
touch修改时间戳
touch [OPTION]... FILE...
-a:修改访问时间
-m:修改修改时间
-t:修改为指定时间
-c:不创建文件
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
命令别名(alias)
通过alias命令实现
1)alias:显示当前shell进程中所有可用的命令别名
2)alias:NAME=‘VALUE’
定义别名NAME,其相当于执行命令VALUE
例:alias cdnet='cd /etc/sysconfig/network-scripts'
注意:在命令行中定义的别名,仅对当前shell进程有效,如果想永久有效,需要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
立即生效,重新读取配置文件:source .bashrc
bash进程重新读取配置文件:
source /path/to/config_file
. /path/to/config_file
撤销别名:unalias
unalias [-a] name [-name ...]
PS:如果别名同原命令名称,要执行原命令,可使用"\COMMAND"
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
# ls /var/l*[0-9]*[:lower:]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
# ls /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
# ls /etc/[^:alpha:]?
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
# touch /tmp/tfile$(date +%Y-%m-%d-%H-%M-%S)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
# mkdir mytest1 && cp -r /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
# mkdir mytest2 && cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
# mkdir mytest3 && cp /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:lichenhan,如若转载,请注明出处:http://www.178linux.com/20957