微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

移除指定目录的文件

#!/bin/bash

dir1=/root/was1

dir2=/root/was2

#dir1=/wasprofiles/c01-`hostname`/installedApps/cell01

#dir2=/wasprofiles/c02-`hostname`/installedApps/cell02


function del_files

{

i=1

echo "----------------------------------------------------------------------"


arr=($1)

for s in ${arr[@]}

do

echo "$i $s"

i=$[$i + 1]

done

echo "----------------------------------------------------------------------"

echo "Choose files to remove.(Example:1 2 3 or all)"

read rmfiles

while test -z "$rmfiles"

echo "Input is null! Please input again.(Example:1 2 3 or all)"

read rmfiles

if [ "$rmfiles" = "all" ] ; then

for rf in ${arr[@]}

do

[ ! -d /tmp/$2 ] && mkdir /tmp/$2

rmname=`sed 's/\///' <<< "$rf" | sed 's/\//#/g'`

mv $rf /tmp/$2/$rmname

done

else

for rf in $rmfiles

if grep '^[[:digit:]]*$' <<< "$rf" >/dev/null ; then

arf=$[$rf - 1]

if test -z ${arr[$arf]} ; then

echo "Eeror: Input $rf not exist"

else

[ ! -d /tmp/$2 ] && mkdir /tmp/$2

rmname=`sed 's/\///' <<< "${arr[$arf]}" | sed 's/\//#/g'`

mv ${arr[$arf]} /tmp/$2/$rmname

fi

else

echo "Eerror: Input $rf is not number."

fi

done

fi

echo "ls /tmp/$2"

ls -l /tmp/$2

}


echo "Please input was1,was2 or exit."

read line

while test -z "$line" || ([ "$line" != "was1" ] && [ "$line" != "was2" ] && [ "$line" != "exit" ])

do

echo "Input error! Please input was1,'Microsoft YaHei';"> read line

done

echo "----------------------------------------------------------------------"


if [ $line = "was1" ] ; then

echo "Files will be found in $dir1"

echo "Please input filename.(Example: abc 123.txt)"

read filename

while test -z "$filename"

echo "Input is null! Please input again.(Example: abc 123.txt)"

read filename

done


for file in $filename

ffile=`find $dir1 -type f -name $file\*`

if test -z "$ffile" ; then

echo "Info: $file is not found."

else

ffiles="$ffile $ffiles"

fi

if test -z "$ffiles" ; then

echo "Can't find input files."

del_files "$ffiles" was1

elif [ $line = "was2" ] ; then

echo "Files will be found in $dir2"

ffile=`find $dir2 -type f -name $file\*`

echo "Info: All input files not found!"

del_files "$ffiles" was2

elif [ $line = "exit" ] ; then

exit

fi

原文地址:https://www.jb51.cc/bash/391120.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐