1.find查找排除单个目录
查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk
find . -path "./sk" -prune -o -name "*.txt" -print
find . -type f -executable ! -path "./.git/*"
.
:在当前目录下查找-type f
:仅查找一般文件-executable
:文件具有可执行权限! -path "./.git/*"
:这里是关键,!
的作用是排除其后-path
所跟的目录
2.find查找排除多个目录
find / −path/home/−o−path/root -prune -nouser -type f -exec ls -l {} \;
find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
3.tar根据文件列表压缩指定文件
tar -czv -T /opt/src/downLoad_list.txt -f downLoad_list.txt.tar.gz
-T, --files-from=FILE get names to extract or create from FILE
--unquote unquote filenames read with -T (default)
-X, --exclude-from=FILE exclude patterns listed in FILE
-T 指定需要压缩的文件列表,只压缩文件列表里的文件
-f 指定压缩文件名及路径
-X 排除指定文件,不进行压缩
4.find查找指定文件内容包含特定关键字
find . -type f -name '*.jsp' -exec awk 'BEGIN{ FS="\n"; RS="" } /关键字1/&&/关键字2/ {print FILENAME}' {} \;