Andy Niu �����ĵ�

Andy Niu

Andy Niu Help  1.0.0.0
文件与目录管理

变量

 cp
 
 scp
 
 查看文件和目录的大小
 
 Linux搜索文件
 

详细描述

变量说明

cp
1、cp命令,目标已经存在,每次都提示是否覆盖,怎么办?
2、cp --help 可以看到选项-i的时候,才会提示,但是这里并没有-i,为什么每次都有提示?
3、原因是:这里执行的cp是一个别名,通过alias 命令可以看到 alias cp='cp -i'
4、怎么解决这个问题?
    a、使用原始的cp命令,\cp 1 2
    b、通过alias命令,临时取消别名,alias cp='cp'
    c、要想重新登录或者重启有效,需要修改文件~/.bashrc,注意.bashrc是一个隐藏的文件,需要ll -a才能看到。
5、注意:cp -f表示存在目标,不能打开,删除目标,再试一次。
6、考虑下面的需求,把当前目录的111,拷贝到./bbb/ccc目录,而./bbb/ccc目录有可能不存在,
    如果不存在,新建目录,然后拷贝。
    解决办法:
    a、if [ ! -d './bbb/ccc' ]; then mkdir -p './bbb/ccc/'; fi; \cp 111 ./bbb/ccc/;
    b、mkdir -p ./bbb/ccc/; \cp 111 $_; 
    注:$_引用前一个命令的最后一个参数
        mkdir,目录不存在创建,如果存在,就不创建,返回值都是0,返回值是0,可认为操作后目录存在。
7、\cp 111 ./bbb/ccc/ 把111拷贝到./bbb/ccc/,如果重命名为222,使用\cp 111 ./bbb/ccc/222
参见
Linux搜索文件
1、whereis 只能查找可执行文件,联机帮助文档,源代码文件。在数据库/var/lib/mlocate/mlocate.db查找,因此效率很高。
    但是数据库mlocate.db不是实时更新的,而是一天更新一次(crontab定时执行updatedb),因此whereis查找会不准确。
    要想准确,需要执行一把updatedb,但是这又失去了高效性。
2、locate是whereis的加强版,增加一些选项,比如正则表达式。
3、which $PATH配置了可执行文件的目录,有多个目录,which在这些目录中查找可执行文件。
4、type,检查一个命令是否为shell内置命令,如果不是shell内置命令,通过type -p即可找到文件的路径。
5、find 遍历磁盘查找,因此很准确,但是效率很差。find的功能很强大。常用的功能如下:
    a、find ./ -name aaa 在当前目录查找名称为aaa的文件,忽略大小写使用-iname
    b、find查找是精确查找,文件名必须相同。如果只知道文件名的一部分,需要使用通配符。
        ? 和 *  ?表示匹配一个字符,*表示匹配任意个字符。如:find ./ -iname '?a'
        注意:通配符与正则表达式不是一个概念,在正则表达式中,?表示出现0次或者1次,*表示出现任意多次。
        mysql查询支持通配符和正则表达式,在mysql中下划线"_"匹配一个字符,百分号"%"匹配任意个字符
    c、使用正则表达式,find ./ -regex '.*a',特别注意,正则表达式必须要匹配文件的路径和文件名,才算匹配成功。
        文件路径就是要搜索的路径。
    d、使用通配符或者正则表达式,查找的目标,必须使用单引号或者双引号括起来,因为通配符和正则表达式包含特殊字符。
        如果没有括起来,相当于特殊字符作为文件名的一部分,当然不对。
6、特别注意:find与grep的区别。
    find是根据文件属性,查找文件
    grep是根据文件内容,查找文件
scp
1、cp只是在本机上进行,我想把本机的一个文件,拷贝到远程的一个机器上,怎么办?
2、使用scp,如下:
    scp ./aaa [email protected]:/tmp
3、接下来输入机器10.65.200.52的登录密码,登录名是root,需要注意的是:
    scp默认的端口是 22,如果10.65.200.52的端口是1733,需要使用如下:
    scp -P1733 ./aaa [email protected]:/tmp
查看文件和目录的大小
1、df -h 查看整个文件的使用情况
2、du 查看当前目录的情况,包括每个文件,目录的大小
    注:一个总的目录往往下面有非常多的子目录和文件,
    使用du --max-depth=2 只查看两层    
Copyright (c) 2015~2016, Andy Niu @All rights reserved. By Andy Niu Edit.