我創建了兩個腳本來創建大量文件的校驗和,其中一個我使用'find'命令來搜索特定目錄中的文件,但是當文件名有空格字符,例如'file one.txt',腳本以這兩個文件爲例:文件和一個,我知道錯誤在'find'命令行中,但是我不'不知道我做錯了什麼。Shell腳本沒有找到名稱爲空的文件
我的腳本:
#!/bin/bash
find $1 -type f -exec bash ./task2.sh "{}" \;
在先進的感謝!
我創建了兩個腳本來創建大量文件的校驗和,其中一個我使用'find'命令來搜索特定目錄中的文件,但是當文件名有空格字符,例如'file one.txt',腳本以這兩個文件爲例:文件和一個,我知道錯誤在'find'命令行中,但是我不'不知道我做錯了什麼。Shell腳本沒有找到名稱爲空的文件
我的腳本:
#!/bin/bash
find $1 -type f -exec bash ./task2.sh "{}" \;
在先進的感謝!
爲了搜索名稱中包含空格的文件,您必須將參數括在引號中或轉義空格。如:
find "test file.txt"
或備選find test\ file.txt
。
在特定使用情況下,最簡單的解決方法是放在引號$1
:
find "$1" -type f -exec bash ./task2.sh "{}" \;
我做到了,但沒有工作..現在的輸出是:」發現:不能搜索「:沒有這樣的文件或目錄」 –
@DouglasDiasdaSilva嘗試迴應'$ 1'的內容。此錯誤與包含空格的名稱無關。 –
變量$ 1接收一個參數,在這種情況下,我設置了我希望運行校驗和的目錄的路徑,或者將bash文件移動到特定的目錄,並且只運行這個沒有任何參數的,這就是我所做的,所以他自動採取他所在的路徑... –
做'找到 「$ 1」 型的F -exec慶典...' –
我試了一下,但輸出是:「發現:不能搜索」:沒有這樣的文件或目錄「 –