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.