[英]file search bash script
我試圖做一個非常簡單的bash腳本,以在當前目錄的目錄結構中查找與給定名稱匹配的文件。 所以,我使用了像這樣的查找功能
ARGS=1
E_BADARGS=65
E_NOFILE=66
if [ $# -ne "$ARGS" ] # Correct number of arguments not passed
then
echo "Usage: `basename $0` filename"
exit $E_BADARGS
fi
echo `find ./ -type f -name \$1`
這可以正常工作,但是與我在命令行中使用find命令不同,生成的文件路徑不是用換行符而是僅用空格分隔。 在屏幕上自然很難看到這一點。 如何回顯,以便找到的每個文件都由換行符分隔。
我會將您的find命令更改為以下命令:
find . -maxdepth 1 -type f -name "$1"
請注意,雙引號在find命令中非常重要,可以正確處理正則表達式。 我還添加了maxdepth 1
以僅在當前目錄中搜索文件
嘗試改變
echo `find ./ -type f -name \$1`
至
find ./ -type f -name $1
正如@codaddict指出的,在這里不需要echo
。 但是,這也是理解您的代碼為何以這種方式運行的好練習。 提示:比較
echo `find ./ -type f -name \$1`
和
echo "`find ./ -type f -name \$1`"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.