我正在尝试编译一个非常简单的bash脚本,它将执行以下操作(到目前为止,我所使用的脚本似乎根本不起作用,因此我不会浪费时间来放置此脚本你可以看一下)
我需要它来按名字查找文件。我需要脚本来获取用户输入并搜索.waste目录以查找匹配项,如果文件夹为空,我需要回显#34;未找到匹配项,因为文件夹为空!&#34 ;,并且通常无法找到匹配的简单"找不到匹配。"
我已定义:target=/home/user/bin/.waste
答案 0 :(得分:1)
您可以使用内置的find命令执行此操作
find /path/to/your/.waste -name 'filename.*' -print
或者,您可以将其设置为.bash_profile
searchwaste() {
find /path/to/your/.waste -name "$1" -print
}
请注意,$1
周围有引号。这将允许您进行文件通配。
searchwaste "*.txt"
上述命令会在.waste
目录中搜索任何.txt
个文件
答案 1 :(得分:0)
在这里,非常简单的脚本:
#!/usr/bin/env bash
target=/home/user/bin/.waste
if [ ! "$(ls -A $target)" ]; then
echo -e "Directory $target is empty"
exit 0
fi
found=0
while read line; do
found=$[found+1]
echo -e "Found: $line"
done < <(find "$target" -iname "*$1*" )
if [[ "$found" == "0" ]]; then
echo -e "No match for '$1'"
else
echo -e "Total: $found elements"
fi
顺便说一下。在* nix世界中没有文件夹,但有目录:)
答案 2 :(得分:0)
这是一个解决方案。
#!/bin/bash
target="/home/user/bin/.waste"
read name
output=$( find "$target" -name "$name" 2> /dev/null )
if [[ -n "$output" ]]; then
echo "$output"
else
echo "No match found"
fi