我想使用shell腳本列出所有目錄。我使用下面的代碼:列出名稱中包含空格的所有目錄
DIR="$1"
if [ $# -ne 1 ]
then
echo "Usage: $0 {dir-name}"
exit 1
fi
cd "$DIR"
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for user in $(ls -d */)
do
for dirs in $(ls -d $PWD/$user*)
do
echo $PWD/$user/$dirs;
done
done
IFS=$SAVEIFS
這是爲我工作,如果該目錄沒有關於它的任何空間,否則拆分在它的每一個空間的輸出。我得到了以下的輸出:
[email protected]:~/software$ sh test.sh /media/2C44138344134F48/RB1
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3001/*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3002/*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/VB*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/DLI*: No such file or directory
ls: cannot access /m: No such file or directory
ls: cannot access dia/2C44138344134F48/RB1/3003/*: No such file or directory
你可以更精確的問題:你只需要帶有空格的目錄嗎?或者你是否需要在所有目錄上「做你的東西」,包括名稱中包含空格的目錄? – JScoobyCed 2012-03-07 06:26:40
您需要使用BASH運行腳本「bash test.sh/media/2C44138344134F48/RB1」 – JScoobyCed 2012-03-07 06:40:24
我需要列出所有目錄,包含或不包含空格。 – biztiger 2012-03-07 06:42:44