本文来自: allcommands
整理其比较实用的好的程序,并翻译过来.
一、在当前目录及子目录下搜索所有后缀为 .php 的文件,并且将 字符串 baidu.com 替换成 opendoc.com.cn
find -name *.php |xargs perl -pi -e ''s|baidu.com|opendoc.com.cn|g'';
sed -i "s/baidu.com/opendoc.com.cn/g" `grep baidu.com -rl ./`
二、将当前目录文件名全部转换成小写
for i in *; do mv "$i" "$(echo $i|tr A-Z a-z)"; done
三、查找二个文件相同的内容
grep -Fx -f file1 file2
sort file1 file2 | uniq -d
四、查找file2里 file1里没有的内容
grep -Fxv -f file1 file2
五、自动更新SVN的一个目录
for d in $(find . -maxdepth 1 -type d -name ''[^.]*''); do cd "$d"; svn up; cd ..; done
六、查找当前文件列表 文件与组没有修改时间排序
find . -type f | xargs ls -ltrhg
l: 所有信息
t: 修改时间排序
r: 倒序
h: 大小 M K
g: 用户组
七、找到文件,将其与一个可读的信息输出列表
find . -type f | sed ''s,.*,stat "&" | egrep "File|Modify" | tr "\\n" " " ; echo ,'' | sh | sed ''s,[^/]*/\(.*\). Modify: \(....-..-.. ..:..:..\).*,\2 \1,'' | sort
find . -type f -exec ls -tr {}
find . -type f | sed ''s,.*,stat "&" | egrep "File|Modify" | tr "\\n" " " ; echo ,'' | sh | sed ''s,[^/]*/\(.*\). Modify: \(...........\).*,\2 \1,'' | sort
ls -rl --time-style= %s * | sed ''/^$/,/^total [0-9]*$/d'' | sort -nk6
八、查找文件和他们按修改时间排序的列表
ls -rl --time-style= %s * | sed ''/^$/,/^total [0-9]*$/d'' | sort -nk6
九、查找N天前的文件,按时间排序
find . -type f -mtime -14 -exec ls -ltd \{\} \; | less
十、配置PS aliases
export PSOA=''user,pid,time,state,command'' ; function _ps { /bin/ps $@ ; } ; alias psa=''_ps ax -o
$PSOA''
#ps aliases
PSO=''user,pid,ppid,%cpu,%mem,time,start,state,command''
PSOA=''user,pid,time,state,command''
PSOL=''user,pid,ppid,%cpu,%mem,nice,pri,etime,time,tt,state,ucomm''
export PSO PSOA PSOL
function _ps { /bin/ps $@ ; }
alias ps=''_ps ax -o $PSO''
alias psa=''_ps ax -o $PSOA''
alias psl=''_ps ax -o $PSOL''
alias psm=''_ps -U $USER -o $PSOA''
十一、逐渐打印各行
awk ''BEGIN{ORS=""}NR!=1&&FNR==1{print "\n"}{print}END{print "\n"}'' *.txt
|