当前位置: 技术问答>linux和unix
查找并删除位于多个文件夹下的某些文件
来源: 互联网 发布时间:2016-12-25
本文导语: 举个例子:想删除多个文件夹下的.o文件。如何操作? 谢谢了 | 在find命令后面加入-exec rm { } ; 如find / -name "name" -exec rm { } ; | 两个大括号要连着写: mymtom@freebsd$ find . -na...
举个例子:想删除多个文件夹下的.o文件。如何操作?
谢谢了
谢谢了
|
在find命令后面加入-exec rm { } ; 如find / -name "name" -exec rm { } ;
|
两个大括号要连着写:
mymtom@freebsd$ find . -name "*.o" -exec rm { } ; -print
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
rm: {: No such file or directory
rm: }: No such file or directory
mymtom@freebsd$ find . -name "*.o" -exec rm {} ; -print
./020.o
./017/hello.o
./014/global.o
./014/main.o
./014/maincpp.o
./014/extern_c.o
./014/extern.o
|
可以写一个脚本来实现
比如要删除在$HOME 目录下除 *.c 的其他文件。一下是脚本的内容 rmfiletest.sh
#!/bin/ksh
~ .profile
######################################################
#*** co.,Ltd
#Function: 删除在$HOME 目录下除 *.c 的其他文件
#Auth: wucg
#Date: 2009-07-01
#######################################################
cd $HOME
#找出所有的文件,保留在临时文件
find . -name "*" >> rmfiletest_tmp
#循环删除 非 *.c 文件
while read LINE
do
echo $LINE
#判断该文件是否是*.c 文件
FILE_LEN=lentgh($LINE)
let FILE_LEN_1=${FILE_LEN}-1
let FILE_LEN_2=${FILE_LEN_1}-1
CH=`echo$LINE|cut -c${FILE_LEN_2}-${FILE_LEN_1}`
CH1=`echo$LINE|cut -c${FILE_LEN_1}-${FILE_LEN_1}`
if [ "$CH" != "." ]; then
#如果倒数第二个字符不是"." 直接删除
rm -f $LINE
else if [ "$CH1" != "c" ]; then
#如果不是 *.c 文件,删除
rm -f $LINE
fi
done