我有一個函數,它的第一個參數是存儲路徑到某個目錄的字符串。 這個字符串是的輸出結果。型d。路徑中的列表文件
如果我列出當前目錄中的所有文件,其簡單
for file in *; do
commands
done
但與字符串它不把它當然這種方式。
for file in "$1"; do
commands
done
所以我想用LS
for file in `ls "$1"`; do
commands
done`
但是這種解決方案根本無法處理與空間中的文件,經過一番研究 我發現到處建議使用找到但我沒有得到,找到將 列出所有的文件/目錄/子目錄,只是整個樹,但我只想在當前目錄中的東西。 我會非常感謝您的幫助。
UPDATE
我已經試過了,似乎工作一兩件事:
pushd "$1"
for file in *; do
echo "$file"
done
popd
但我寧願一些解決方案,我沒有改變我的工作目錄
現在你知道爲什麼傳統上,Unix並沒有鼓勵文件名中的空格(儘管它一直允許它們)。如果路徑名稱中沒有空格(換行符,後退空格,製表符和其他控制字符),則工具將調整爲最佳狀態。 – 2012-03-03 18:53:28
使用:'(cd「$ 1」|| exit 1; ...)',因爲如果出現錯誤,這不會使主進程滯留在遠程目錄中。 – 2012-03-03 19:02:43