find path -type f -exec rename 's/ /_/g' {} \;
文件权限/var/www
生成文件统计信息的脚本
#!/bin/bash
if [ $# -ne 1 ];
then
echo "Usage is $0 base path";
exit
fi
path $1
declare -A statarray
while read line;
do
ftype=`file -b "$line" | cut -d, -f1`
let statarray["$ftype"]++;
done << (find $path -type f -print)
echo ===================== File types and counts=======================
for ftype in "${!statarray[@]}";
do
echo $ftype : ${statrray["$ftype"]}
done
玩转CD-ROM托盘
弹出光驱托盘
eject
合上光驱托盘
eject -t
打补丁
非一体化形式的diff输出如下:
diff version1.txt version2.txt
一体化形式diff输出如下:
diff -u version1.txt version2.txt
选项-u用于生成一体化输出。因为一体化输出的可读性更好,更易于看出两个文件之间的差异。
修补文件可以通过将diff的输出重定向到一个文件来生成。
diff -u version1.txt version2.txt > version.patch
修补
patch -p1 version1.txt < version.patch
再次执行将会还原,撤销修改。
使用-R 选项不会提示-n-y
生成目录差异信息
diff -Naur directory1 directory2
-N 将所有缺失的文件视为空文件
-a 将所有文件视为文本文件
-u 生成一体化输出
-r 遍历目录下的所有文件
使用head与tail打印文件的前10行和后10行
打印前10行
head file
指定打印前几行
head -n 4 file
打印出了最后M行之外的所有的行
head -n -M file
-M表示一个负数,并非选项。
打印最后10行
tail file
打印最后5行
tail -n 5 file
打印除了前M行之外的所有的行
tail -n +(M+1)
tail命令的一个重要用法是从一个内容不断增加的文件中读取数据。新增加的内容总是被添加到文件
尾部,因此当新内容被写入文件的时候,可以用tail将其显示出来。只是如果简单地使用tail的话,它只会
读取文件的最后10行,然后退出。但那时新的内容也许已经被其他进程追加到文件了。为了能够不间断地监视
文件的增长,tail有一个特殊的选项 -f或--follow,它们会使tail密切关注文件中新添加的内容,并随着
数据的增加持续保持更新:
tail -f growing_file
监视日志文件增加的命令如下:
tail -f /var/log/messages
或
dmesg | tail -f
tail有一个很有意思的特性:当某个给定进程结束之后,tail也会随之终结。
tail -f file.txt --pid $PID
只列出目录的各种方法
使用ls -d
ls -d */
使用grep结合ls -l:
ls -l | grep "^d"
使用find
find . -type d -maxdepth 1 -print
用命令行中使用pushd和popd进行快速定位
压入并切换路径
pushd /var/www
...
用以下命令查看栈内容
dirs
/usr/src /var/www /usr/share /etc
pushd +3 切换到编号对应目录,从0到n进行编号
popd
删除最后添加的路径并把当前目录更改为上一级目录。
popd +num可以从列表中移除特定的路径
num是从左到右,从0到n开始计数的。
统计文件的行数,单词书和字符数WC工具。
统计行数
wc -l file
统计单词数
wc -w file
统计字符数
wc -c file
分别打印文件行数,单词数,字符数
wc file
使用-L选项打印出文件中最长一行的长度
wc file -L
打印目录树
tree工具
tree 目录
重点标记出匹配的某种样式的文件
tree path -P PATTERN #用通用符描述样式
tree PATH -p "*.sh" # 用一个目录替代PATH
重点标记出除符合某种样式之外的那些文件
tree path -I PATTERN
使用-h选项同时打印出文件和目录的大小
tree -h
以HTML形式输出目录树
tree PATH -H http://localhost -o out.html