2016-11-04 59 views
-1

我創建了兩個腳本來創建大量文件的校驗和,其中一個我使用'find'命令來搜索特定目錄中的文件,但是當文件名有空格字符,例如'file one.txt',腳本以這兩個文件爲例:文件一個,我知道錯誤在'find'命令行中,但是我不'不知道我做錯了什麼。Shell腳本沒有找到名稱爲空的文件

我的腳本:

#!/bin/bash 

find $1 -type f -exec bash ./task2.sh "{}" \; 

在先進的感謝!

+1

做'找到 「$ 1」 型的F -exec慶典...' –

+0

我試了一下,但輸出是:「發現:不能搜索」:沒有這樣的文件或目錄「 –

回答

2

爲了搜索名稱中包含空格的文件,您必須將參數括在引號中或轉義空格。如:

find "test file.txt"或備選find test\ file.txt

在特定使用情況下,最簡單的解決方法是放在引號$1

find "$1" -type f -exec bash ./task2.sh "{}" \;

+0

我做到了,但沒有工作..現在的輸出是:」發現:不能搜索「:沒有這樣的文件或目錄」 –

+0

@DouglasDiasdaSilva嘗試迴應'$ 1'的內容。此錯誤與包含空格的名稱無關。 –

+0

變量$ 1接收一個參數,在這種情況下,我設置了我希望運行校驗和的目錄的路徑,或者將bash文件移動到特定的目錄,並且只運行這個沒有任何參數的,這就是我所做的,所以他自動採取他所在的路徑... –

相關問題