我正在使用它来遍历/ home目录中的文件夹
for FOLDERNAME in `\ls -1 /home/`
Run Code Online (Sandbox Code Playgroud)
我想知道它是否安全
如果您想要所有子目录/home,请使用
( # run in subshell so "shopt -s dotglob" doesn't affect rest of script
shopt -s dotglob
for DIR in /home/*/; do
DIRNAME=`basename "$DIR"`
# do whatever with "$DIR" or "$DIRNAME"
echo -n "$DIRNAME"|od -t cz
done
)
Run Code Online (Sandbox Code Playgroud)
请注意尾部斜杠和引用的变量.
编辑:
使用目录和文件
mkdir /home/..abc
mkdir /home/.abc
mkdir /home/$'a\nc'
mkdir /home/'a?c'
mkdir /home/abc
mkdir /home/'foo bar'
touch /home/test
Run Code Online (Sandbox Code Playgroud)
这给了我输出
0000000 . . a b c >..abc<
0000005
0000000 . a b c >.abc<
0000004
0000000 a \n c >a.c<
0000003
0000000 a ? c >a?c<
0000003
0000000 a b c >abc<
0000003
0000000 f o o b a r >foo bar<
0000007
Run Code Online (Sandbox Code Playgroud)
哪里
ls -1 -F -b -A /home
Run Code Online (Sandbox Code Playgroud)
给了我输出
..abc/
.abc/
a\nc/
a?c/
abc/
foo bar/
test
Run Code Online (Sandbox Code Playgroud)
(test是一个文件)