删除除link(软连接)对应的文件以外的所有文件

删除除link(软连接)对应的文件以外的所有文件

使用find和readlink删除除link(软连接)对应的文件以外的所有文件,一般用于自动删除日志文件。

脚本 #

#!/bin/bash

linkArr=`find $1 -type l -exec readlink {} \;`
fileArr=`find $1 -type f -name "*${2}*"`

for f in $fileArr;do
  isLink=false
  for l in $linkArr;do
    #判断当前文件是否为link对应的文件
    if [ "${f##*/}" == "$l" ];then
      isLink=true
      break
    fi
  done
  if [ $isLink == false ];then
    rm -f $f
  fi
done

说明 #

功能 #

删除除link对应的文件以外的所有文件

参数 #

$1 第一个位置参数为需要扫描的目录

$2 模糊搜索文件名