linux命令二
2015-06-22 11:00
561 查看
1 将文件复制到多个目录中
不必运行:[code]cp /path/to/file /usr/dir1 cp /path/to/file /var/dir2 cp /path/to/file /nas/dir3
运行下面的命令来复制到多个目录中
[code]echo /usr/dir1 /var/dir2 /nas/dir3 |xargs -n 1 cp -v /path/to/file
2 xargs命令
经典应用模式:cmd1 | xargs [-option] cmd2没有cmd2,默认使用echo输出
用途
构造参数列表并运行命令,即将接受的参数传递给后面的cmd2命令执行
将多行输入转换成单行(特殊功效)
优点
将输入参数整理后,去除
<newline>换行符,以一个列表形式处理
避免参数过长引发的问题,使用 xargs -n 参数适当控制,对于经常产生大量输出的命令如find、locate和grep来说非常有用
xargs 一般和管道一起使用:
cmd1 | xargs [-option] cmd2
option:
-i:-i选项告诉xargs可以使用{}代替传递过来的参数,建议使用-I,其符合POSIX标准
-I:格式 xargs -I replace-str cmd replace-str其中replace-str为代替传递给xargs的参数,可以使用{} 、$、@等符号,其主要作用是当 xargs cmd 后有多个参数时,调整参数位置。例如:
[code]find . -name "*.txt" | xargs -I {} cp {} /tmp
-L num:从标准输入一次读取num行送给cmd命令,-L和-l功能一样不建议使用。
-n:xargs的-n选项设置每次送给cmd命令的参数个数,参数以空白字符或
<newline>换行符分割。
-L和-n标识是互相排斥的;最后指定的标识生效。
-s size:设置每次构造cmd行的长度总大小,包括cmd + init-param +传递参数,size参数必须是正整数。
-x: 如果有任何cmd行大于 -s Size标识指定的字节数,停止运行xargs命令,-L -I -n 默认打开-x参数。
注:详情请查看linux的man手册。
3 删除意外在当前文件夹下解压的文件
意外在/var/www/html而不是/home/projects/www/current下解压了一个tarball。它搞乱了/var/www/html下的文件,不知道哪些是误解压出来的。最简单的修复办法是[code]cd /var/www/html rm -f "$(tar -ztf /path/to/file.tar.gz)"
4 tr命令
tr [OPTION] … SET1 [SET2]功能:转换或删除字符
描述:
tr 指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备。
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
参数:
-c 或–complement 取代所有不属于第一字符集的字符。
-d 或–delete 删除所有属于第一字符集的字符。
-s 或–squeeze-repeats 把连续重复的字符以单独一个字符表示。
-t 或–truncate-set1,first truncate SET1 to length of SET2,经过我的实践发现,将set1的字符依次替换成set2中的字符,如果set1中的字符数目超过set2,那么set1多出的字符忽略。如果没有-t,那么多出的字符都替换成set2的最后一个字符。
压缩
[code]// 压缩 $echo hellohellohello | tr -s [a-z] // 显示helohelohelo // test文件内容 111 222 333 // 删除文件中多余空行 $tr -s "[\012]" <test // 标准输出显示 111 222 333 // 替换文件test中的所有冒号,代之以逗号 $tr -s "[:]" "[,]" <test // 或 $tr -s ":" ","
转换
[code]$echo hello |tr [a-z] [A-Z] 或 $echo hello |tr a-z A-Z // 显示HELLO
删除
[code]$echo hello |tr -d bld // 显示 heo
相关文章推荐
- Windows Linux Mac
- linux getrlimit sysconf
- centos配置iptables--2
- Hadoop在linux下无法启动DataNode解决方法
- CentOS 加载/挂载 U盘
- centos配置iptables
- RedHat Linux RPM方式安装MySQL5.6
- CentOS 6.6 安装SalkStack
- 在Linux中调度功能是由哪个函数来实现的???
- 进程管理与SELinux初探
- Linux常用命令英文全称与中文解释Linux系统
- 转载的,linux 14.04安装双显卡的驱动,切换
- linux通过使用mail发送电子邮件
- linux新的API signalfd、timerfd、eventfd使用说明
- 用USB安装Linux系统(centos7)
- linux笔记
- linux 下安装JDK 1.7
- Linux命令之文本处理(一)
- Linux_4.2_多进程程序设计
- Linux下DIR,dirent,stat等结构体详解