1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
查看列表ls
选项:
-a, --all do not ignore entries starting with . 显示所有文件并包括隐藏文件 -l use a long listing format 显示文件详细信息 -d, --directory list directory entries instead of contents, and do not dereference symbolic links 显示指定目录的信息,而不是显示其目录下的文件,与-l一起使用才有意义 -r, --reverse reverse order while sorting 反向排序 -n, --numeric-uid-gid like -l, but list numeric user and group IDs 不显示用户和组名,显示UID和GID -R, --recursive list subdirectories recursively 递归显示目录以及子目录下的文件 -h, --human-readable with -l, print sizes in human readable format (e.g., 1K 234M 2G) 根据文件大小显示容易查看的size大小,与-l结合使用 -S sort by file size 按文件大小排序 --sort=WORD 选择文件的某个属性排序 sort by WORD instead of name: none -U, extension -X, size -S, time -t, version -v --time=WORD 选择文件的某个时间属性排序 with -l, show time as WORD instead of modification time: atime -u, access -u, use -u, ctime -c, or status -c; use specified time as sort key if --sort=time
实例:
$ ls -lah drwxr-xr-x 2 scm scm 4.0K May 21 11:13 .vnc drwxrwxr-x 3 scm scm 4.0K May 12 14:02 workspace -rw------- 1 scm scm 202 May 21 11:13 .Xauthority 详解:drwxrwxrwx,d位置是文件类型,除了d目录文件,常见的还有中杠表示普通文件,l表示链接文件,b表示块文件,c表示字符设备文件,p表示管道文件,s表示套接字文件;rwxrwxrwx是文件的权限位,前三位是属主权限,中间三位是属组权限,最后是其他用户权限,rwx表示可读可写可执行,权限位中杠表示无相应权限 下来的字段为被硬链接的次数,例如.cache表示被硬链接3次 然后的两个字段分别表示属组和属主,都是scm 4.0K和202表示文件大小,加了选项-h可显示合适的文件大小单位 May 21 11:13是文件修改时间戳 最后显示文件名
复制:cp
选项
-a, --archive 归档,保留文件原来的样子,可恢复原来的现场 same as -dR --preserve=all 相当于-dR --preserve=all -i, --interactive prompt before overwrite (overrides a previous -n option) 交互式提示是否覆盖 -s, --symbolic-link make symbolic links instead of copying 创建符号连接 -R, -r, --recursive copy directories recursively 逐级复制目录以及目录下所有文件 --preserve[=ATTR_LIST] preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all 复制时保留文件属性 -d same as --no-dereference --preserve=links 不追踪符号链接, -p same as --preserve=mode,ownership,timestamps 复制时保留文件的权限,属组属组和时间戳 -v, --verbose explain what is being done 显示详细过程
实例:
root用户操作 $ cp -a /home/scm /home/back/scm.bak 将/home/scm备份至/home/back目录下,查看备份 -p也是常用的选项,一般情况下cp文件夹不带-p会报错“cp: omitting directory `testcpdir2/'” $ cp -p /home/scm /home/back/scm.bak
移动:mv
选项
-f, --force do not prompt before overwriting 强制移动,覆盖同名文件不提示 -i, --interactive prompt before overwrite 交互式提示是否覆盖
删除:rm
选项
-f, --force do not prompt before overwriting 强制删除 -i, --interactive prompt before overwrite 交互式提示是否删除 -r, -R, --recursive remove directories and their contents recursively 递归删除
实例:
-f常与-r一起使用,可直接删除目录文件 $ rm -rf test/
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
答:
命令的执行状态返回值:
命令执行的状态 一般分为两种,成功或者失败 返回值为0表示执行成功;为1~255表示失败 $?可以查看命令执行的返回值
命令行展开特性:
~:展开用户的主目录 $cd ~表示切换目录至家目录 $cd ~/.ssh表示切换只家目录下的.ssh目录 {}:可承载以逗号分隔的列表,并将其展开围多个路径 $mkdir project/{branches,tags,trunk/{product1,product2}}
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
$mkdir {a_{c,d},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 mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,user/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
答:
文件的元数据信息:
stat命令可查看文件的元数据信息
$stat /etc/passwd File: `/etc/passwd' Size: 1750 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 393910 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-19 18:58:25.910331000 -0700 Modify: 2016-06-11 19:39:22.305024069 -0700 Change: 2016-06-11 19:39:22.305024069 -0700
详解:
Size: 1750 文件大小1750 byte Blocks: 8 占用8个block IO Block: 4096 每次读写的数据单元大小 regular file 此文件为常规文件 Device: 802h/2050d ??? Inode: 393910 索引节点号 Links:硬连接数 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) 权限,属主,属组 Access:访问时间 Modify:修改时间 Change:改变时间,一般值元数据最后一次修改的时间
修改文件的时间戳:
touch
选项:
-a change only the access time 修改访问时间 -c, --no-create do not create any files touch的文件不存在时不创建 -m change only the modification time 改变文件修改时间 -t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time 指定时间的时间格式 [[CC]YY]MMDDhhmm[.ss] 年 月日时分 秒
实例:
$ touch -at 201606061423.22 xiaoyue.sh $ touch -mt 201606051423.22 xiaoyue.sh 注意,文件的任何一个元数据的改变都会引起ctime的改变
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
答:
命令alias $alias 不加任何参数表示查看当前shell下的命令别名 添加命令别名: $alias ls='ls -la' vi ~/.bashrc或者/etc/bashrc可添加命令别名
命令中引用另一个命令的执行结果可以使用管道
$ls -l |grep "rwx"
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
$ls /var |egrep --colour '^l.*[[:digit:]].*[[:lower:]]$'
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
$ls /etc |egrep --colour '^[[:digit:]].*[^[:digit:]]$'
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
$ls /etc |egrep --colour '^[^[:alpha:]][[:alpha:]].*'
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
$touch tfile-$(date +%Y-%m-%d-%H-%M-%S)
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
#cp -r /etc/p*[^1-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
#cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
#cp /etc/[lmn]*.conf /tmp/mytest3
原创文章,作者:Net20_天意,如若转载,请注明出处:http://www.178linux.com/18282
评论列表(2条)
写的很好,排版也很好,10 12 可能有点小瑕疵,在仔细看看题目的要求
@马哥教育:我粗心了:
10:#cp -r /etc/p*[^0-9] /tmp/mytest1
12: #cp -r /etc/[lmn]*.conf /tmp/mytest3