繁体   English   中英

查找用于文件夹位置的文件Linux Bash

[英]Find using file for folder locations Linux Bash

我正在尝试使用txt文件来存储要在find命令中使用的文件夹位置。 但是,保持找不到文件夹的状态仅适用于文件中的一个文件夹位置

与“ $ addfolder”

found=$(find "$addfolder" ! -path "*/.bak/*" -type f -iname "*$ffind*" | sort)

并取代\\“

addfolder="$addfolder $Folder"

folder.txt:-主要/公共主要/常规未使用的旧备份文件

#!/bin/bash 
addfolder=""    
filename="Settings/folders.txt"

#Read Folder.txt for locations
while read -r Folder; do
 if [ ! "$Folder" == "" ];then
  if [ -d "$Folder" ]; then
   addfolder="$addfolder \"$Folder\""
   echo "$addfolder"
  fi
fi
done < "$filename"

if [  "$addfolder" == "" ]; then
 exit
fi

echo -e "\e[36mEnter Filename To Find :-\e[0m"
read -p "" ffind
echo -e "\e[92mSearching:\e[0m"
found=$(find $addfolder ! -path "*/.bak/*" -type f -iname "*$ffind*" | sort)

echo -e "\e[33m$found\e[0m"
echo "Press Enter To Exit"
read -s -n 1 -p ""

常规变量应仅包含单个字符串。

要保存字符串列表,请使用数组:

#!/bin/bash 
addfolder=()    
filename="Settings/folders.txt"

#Read Folder.txt for locations
while IFS= read -r Folder; do
 if [ ! "$Folder" == "" ];then
  if [ -d "$Folder" ]; then
   addfolder+=( "$Folder" )
   echo "${addfolder[@]}"
  fi
fi
done < "$filename"

if [  "${#addfolder[@]}" == 0 ]; then
 exit
fi

echo -e "\e[36mEnter Filename To Find :-\e[0m"
read -p "" ffind
echo -e "\e[92mSearching:\e[0m"
found=$(find "${addfolder[@]}" ! -path "*/.bak/*" -type f -iname "*$ffind*" | sort)

echo -e "\e[33m$found\e[0m"
echo "Press Enter To Exit"
read -s -n 1 -p ""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM