本文来自: 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