簡體   English   中英

文件搜索bash腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM