2017-02-14 132 views
0

我學會了如何使用昨天的腳本來顯示包含輸入文本的所有文件。Linux bash:找到包含特定文本的文件夾

echo "enter serial number" 
read number 

matchfiles=(`find /home/data_files -maxdepth 1 -name "*$number*" -type f -exec basename {} \;`) 

COUNTER=${#matchfiles[@]} 

echo serial number data folder found: 
until [ $COUNTER -lt 0 ]; do 
echo ${matchfiles[$COUNTER]} 
let COUNTER-=1 
done 

如果12號被輸入時會輸出與包含在文件名」

對於離12號的所有文件:尋找一種方式做詳細的

enter serial number 
12 
file12.fee 
12file.foo 
file.12 

林同樣的東西,但與目錄

所以輸出將是

enter serial number 
12 
folder12 
12folder 

我需要包含在數組中的文件夾名稱,以便稍後可以使用它們來操作其中的數據。

+0

'-type d'將限制搜索到目錄名稱。 – karakfa

+0

@karakfa當然......哈哈。謝謝! –

回答

1
find {path} -name "*$number*" -type d -exec readlink -f {} \; 

如果您可選{}的路徑是相對的,你想readlink -f是相對路徑轉換爲絕對路徑。如果您想要限制dir路徑中的遞歸搜索,您可能需要添加-maxdepth

相關問題