码迷,mamicode.com
首页 > 系统相关 > 详细

Linux文件管理(二)

时间:2016-08-01 23:01:54      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:文件管理   linux   通配符   字母   

文件通配符

*  匹配零个或多个字符
    列出/dev下所有以l开头的文件或目录
    [root@localhost ~]# ls /dev/l*
    /dev/log  /dev/loop-control  /dev/lp0  /dev/lp1  /dev/lp2  /dev/lp3
?  匹配任何单个字符
    [root@localhost ~]# ls
    aaa  anaconda-ks.cfg  f1  f2  f3  f4  f5  f6
    [root@localhost ~]# ls f?
    f1  f2  f3  f4  f5  f6~  当前用户家目录
~username  用户家目录
~+  当前工作目录
~-  前一个工作目录
[0-9] 匹配一个数字范围
    [root@localhost ~]# ls
    aaa  anaconda-ks.cfg  f1  f2  f3  f4  f5  f6
    [root@localhost ~]# ls f[1-3]
    f1  f2  f3[a-z] :大写和小写字母
    [root@localhost ~]# ls
    aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff
    anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
    [root@localhost ~]# ls f[a-z]
    fa  fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
[A-Z] :大写字母
    [root@localhost ~]# ls
    aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff
    anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
    [root@localhost ~]# ls f[a-z]
    fa  fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
    [root@localhost ~]# ls f[A-Z]
    fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
        [a-z][A-Z]都显示大小写。
[wxc] 匹配列表中的任何的一个字符
    [root@localhost testdir]# ls
    fa  fb  fc  fd  ff  fs
    [root@localhost testdir]# ls -d f[abhgc]
    fa  fb  fc
[^wxc]  匹配列表中的所有字符以外的字符
    [root@localhost testdir]# ls
    fa  fb  fc  fd  ff  fs
    [root@localhost testdir]# ls -d f[abhgc]
    fa  fb  fc
    [root@localhost testdir]# ls -d f[^abhgc]
    fd  ff  fs
预定义的字符类: :#man 7 glob
    [:digit:]:任意数字,相当于0-9
        [root@localhost ~]# ls
        aaa  f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:digit:]]
        f1  f2  f3  f4  f5  f6
    [:lower:]:任意小写字母
        [root@localhost ~]# ls
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:digit:]]
        f1  f2  f3  f4  f5  f6
        [root@localhost ~]# ls f[[:lower:]]
        fa  fb  fc  fd  fe  ff
    [:upper:]: 任意大写字母
        [root@localhost ~]# ls
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:lower:]]
        fa  fb  fc  fd  fe  ff
        [root@localhost ~]# ls f[[:upper:]]
        fA  fB  fC  fD  fE  fF
    [:alpha:]: 任意大小写字母
        [root@localhost ~]# ls 
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:lower:]]
        fa  fb  fc  fd  fe  ff
        [root@localhost ~]# ls f[[:upper:]]
        fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:alpha:]]
        fa  fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
    [:alnum:]:任意数字或字母
        [root@localhost ~]# ls 
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:lower:]]
        fa  fb  fc  fd  fe  ff
        [root@localhost ~]# ls f[[:upper:]]
        fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls f[[:alpha:]]
        fa  fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
        [root@localhost ~]# ls f[[:alnum:]]
        f1  f2  f3  f4  f5  f6  fa  fA  fb  fB  fc  fC  fd  fD  fe  fE  ff  fF
    [:space:]:空格
    [:punct:]:标点符号

查看文件状态

stat:
    文件:metadata, data
    三个时间戳:
    access time :访问时间,atime ,读取文件内容
    modify time:  修改时间, mtime ,改变文件内容(数据)
    change time:  改变时间, ctime ,元数据发生改变
        一般在atime和mtime发生改变是,ctime都会跟着改变
        在atime时间大于一天时或者atime时间小于mtime时,atime都会更新

touch命令

touch 命令:刷新时间
    [root@localhost ~]# stat testdir
      File: ‘testdir’
      Size: 60        	Blocks: 0          IO Block: 4096   directory
    Device: 802h/2050d	Inode: 201382287   Links: 8
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-07-28 17:19:03.141523897 +0800
    Modify: 2016-07-28 17:19:02.00             7523843 +0800
    Change: 2016-07-28 17:19:02.007523843 +0800
     Birth: -
    [root@localhost ~]# touch testdir
    [root@localhost ~]# stat testdir
      File: ‘testdir’
      Size: 60        	Blocks: 0          IO Block: 4096   directory
    Device: 802h/2050d	Inode: 201382287   Links: 8
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2016-07-28 17:53:48.374623329 +0800
    Modify: 2016-07-28 17:53:48.374623329 +0800
    Change: 2016-07-28 17:53:48.374623329 +0800
     Birth: - 
touch [OPTION]... FILE...
    -a:  仅改变 atime
    -m:  仅改变 mtime
    -t :STAMP:
        [[CC]YY]MMDDhhmm[.ss]
    -c: 如果文件不存在,则不给于创建

cp命令:

cp命令是将一个文件或者目录复制到另一个文件或者目录中的命令。    
    cp [选项] 源文件或目录 目标文件或者目录
        说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
        在root用户登陆的情况下,直接使用cp命令用的是cp命令的别名
            [root@localhost ~]# alias
            alias cp=‘cp -i‘
            这样做的原因是防止用户误操作
        在普通用户登陆的情况下是直接使用的cp命令
当原文件是一个时:
1.目标文件不存在:新建目标文件并将源文件中的内容填充到目标文件中。
2.目标文件存在且是文件:将源文件中的内容覆盖至目标文件,要注意数据丢失风险,    一般建议用 -i选项
3.目标文件存在且为目录:在目标文件目录下新建与源文件同名的文件或目录,并将源文件中的内容填充至目标
  文件或者目录中。
当源文件是多个文件时:
1.目标文件不存在:这个时候系统会报错
2.目标文件存在且为文件:系统报错
3.目标文件存在且为目录:在目标文件下新建与源文件同名的文件,并将源文件内容复制到新文件中。
当源文件为目录时要用-r选项:
1.目标文件不存在:创建指定的目标文件同名目录,并复制源文件目录中的文件到目标目录下。
2.目标文件存在且为文件:系统报错
3.目标文件存在且为目录:在目标目录下创建与源文件同名的目录,并将目标目录下的所有文件复制到新目录中。

cp命令常用选项:

-i :交互式-r, -R:  递归复制目录及内部的所有内容;
-a:  归档,相当于-dR --preserv=all-d :--no-dereference --preserv=links  不复制原文件,
     只复制链接名--preserv[=ATTR_LIST]    
    mode:  权限
    ownership:  属主属组
    timestamp:
    links
    xattr
    context
    all
-p:  等同--preserv=mode,ownership,timestamp-v: --verbose-f: --force

命令别名:

显示当前shell进程所有的可用的命令别名
   [root@localhost ~]# alias
   alias cp=‘cp -i‘
   alias egrep=‘egrep --color=auto‘
   alias fgrep=‘fgrep --color=auto‘
   alias grep=‘grep --color=auto‘
   alias l.=‘ls -d .* --color=auto‘
   alias ll=‘ls -l --color=auto‘
   alias ls=‘ls --color=auto‘
   alias mv=‘mv -i‘
   alias rm=‘rm -i‘
   alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
   定义别名NAME ,其相当于执行命令VALUE;
        [root@localhost ~]# alias ls
        alias ls=‘ls --color=auto‘
        [root@localhost ~]# ls
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
        [root@localhost ~]# ls --color=auto
        aaa              f1  f3  f5  fa  fb  fc  fd  fe  ff  testdir
        anaconda-ks.cfg  f2  f4  f6  fA  fB  fC  fD  fE  fF
    
定义别名格式:    alias NAME=‘VALUE‘
    在命令行中定义的别名,仅对当前shell 进程有效
    如果想永久有效,要定义在配置文件中
    仅对当前用户:~/.bashrc
    对所有用户有效:/etc/bashrc
编辑配置给出的新配置不会立即生效;
    bash 进程重新读取配置文件:    source /path/to/config_file
    . /path/to/config_file
撤消别名:unalias
unalias [-a] name [name ...]
如果别名同原命令同名,如果要执行原命令,可使用
“\COMMAND”
’COMMAND’
/PATH/COMMAND
或者\COMMAND

对目录的操作

tree  显示目录树
    -d:  只显示目录    
    -L level :指定显示的层级数目    
    -P pattern:  只显示由指定pattern 匹配到的 路径mkdir  创建目录
    -p:  存在于不报错,且可自动创建所需的各目录;    
    -v:  显示详细信息    
    -m MODE:  创建目录时直接指定权限;
rmdir  删除空目录
     -p:  递归删除父空目录    
     -v:  显示详细信息    
     rm -r 递归删除目录树

mv命令:

mv命令是用来对文件或目录重新命名,或者将文件从一个目录移动到另一个目录中。    
    source :表示源文件或者目录
    target :表示目标文件或目录
如果讲一个文件移动到另一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移动到一个目标文件中,或将一组文件移动到一个目标目录中。
    源文件移动至目标文件有两种不同的结果:    
    1.如果目标文件是到某一目录文件的路径,源文件会被移动到此目录下, 且文件名不变。    
    2.如果目标文件不是目录文件,则源文件(此时源文件只能有一个)会变为此目标文件名,
    并覆盖已存在的同名文件。如果源文件和目标文件在同一目录下,mv的作用就是修改文件名
    字。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至
    目录文件中,所有移动到该目录下的文件都将保留以前的文件名。
    注意:mv与cp的结果不同,mv对文件的操作是移动(从一个地方将文件搬到另一个地方),
         文件个数并没有增加    。而cp是对文件进行复制操作,文件个数增加了。
语法:
mv  [选项]  [参数]
    
常用选项:
    --backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; 
    -b:当文件存在时,覆盖前,为其创建一个备份; 
    -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;             
    -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,
        则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示
        取消对源文件的移动。这样可以避免误将文件覆盖。 
    -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; 
   -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
   参数:
        源文件
        目标文件:如果“目标文件”是文件名则在移动文件的同时,将其名字改为“目标文件”;
        如果“目标文件”是目录则将源文件移动到“目标文件”下。

rm命令:

rm命令可以删除一个目录中的一个或多个文件或者目录,也可以将某个目录及其下属的所有文件及其子目录删除。
      对于链接文件来说,只删除整个链接文件,而原始文件保持不变。
注意:
使用rm命令时删除某个文件时,一旦删除就无法恢复。
语法:
rm [选项] [参数]
常用选项:
    -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; 
    -f:强制删除文件或目录; 
    -i:删除已有文件或目录之前先询问用户; 
    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; 
    -v:显示指令的详细执行过程。参数:
    文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

file命令:

file命令可以检测指定的文件的类型,然后确定适当开放的命令或应用程序使用的
语法:
file [选项]  [参数]
    常用选项:
        -b 列出文件辨识结果时,不显示文件名称。
            [root@localhost testdir]# file fa fb fc fd ff fs
            fa: directory
            fb: directory
            fc: directory
            fd: directory
            ff: directory
            fs: directory
            [root@localhost testdir]# file -b fa fb fc fd ff fs
            directory
            directory
            directory
            directory
            directory
            directory
        -c 详细显示指令执行过程,便于排错或分析程序执行情况
            [root@localhost testdir]# file -c fa fb fc fd ff fs
            cont	offset	type	opcode	mask	value	desc
        -f<名称文件>指定名称文件,其内容有一个或多个文件名称或文件路径时,让file依序辨识这些文件,
            格式为每列一个文件名称
            [root@localhost testdir]# file -f f1
            /root/testdir/: directory
            /dev/bsg/:      directory
        -F 使用指定分隔符号替换输出文件名后默认的”:” 分隔符
            [root@localhost testdir]# file -F"--" -f f1
            /root/testdir/-- directory
            /dev/bsg/--      directory
        -i 输出mime 类型的字符串
            [root@localhost testdir]# file -i-f f1
            file: invalid option -- ‘-‘
            /root/testdir/: inode/directory; charset=binary
            /dev/bsg:       inode/directory; charset=binary
        -L 查看对应软链接对应文件的文件类型
            [root@localhost testdir]# ln -s /dev/zero zero
            [root@localhost testdir]# ls
            f1  fa  fb  fc  fd  ff  fs  zero
            [root@localhost testdir]# file zero
            zero: symbolic link to `/dev/zero‘
            [root@localhost testdir]# file -L zero
            zero: character special
            [root@localhost testdir]# ll
            total 4
            -rw-r--r-- 1 root root 26 Jul 28 21:25 f1
            drwxr-xr-x 2 root root 14 Jul 28 20:19 fa
            drwxr-xr-x 2 root root  6 Jul 28 17:19 fb
            drwxr-xr-x 2 root root  6 Jul 28 17:19 fc
            drwxr-xr-x 2 root root  6 Jul 28 17:19 fd
            drwxr-xr-x 2 root root  6 Jul 28 17:19 ff
            drwxr-xr-x 2 root root  6 Jul 28 17:19 fs
            lrwxrwxrwx 1 root root  9 Jul 28 21:27 zero -> /dev/zero
        -z 尝试去解读压缩文件的内容
    参数:
        文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。


本文出自 “Linux学习随笔” 博客,请务必保留此出处http://dxkedu.blog.51cto.com/11880804/1833205

Linux文件管理(二)

标签:文件管理   linux   通配符   字母   

原文地址:http://dxkedu.blog.51cto.com/11880804/1833205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!