Bash 列出名称中带有空格的文件
问题 在某些目录中,我有一些文件名中带有空格(或者某些特殊字符) 试图每行列出一个文件,我使用了Bash 列出名称中带有空格的文件,bash,shell,for-loop,zsh,Bash,Shell,For Loop,Zsh,问题 在某些目录中,我有一些文件名中带有空格(或者某些特殊字符) 试图每行列出一个文件,我使用了ls-1,但名称中带有空格的文件并没有按照我的预期进行处理 示例 我有以下三个文件: $ ls -1 My file 1.zip My file 2.zip My file 3.zip 我想列出并处理它们,所以我使用这样的循环: for i in `ls -1 My*.zip`; do # statements echo $i; # Do something with ea
ls-1
,但名称中带有空格的文件并没有按照我的预期进行处理
示例
我有以下三个文件:
$ ls -1
My file 1.zip
My file 2.zip
My file 3.zip
我想列出并处理它们,所以我使用这样的循环:
for i in `ls -1 My*.zip`; do
# statements
echo $i;
# Do something with each file;
done
但就像用空格分隔名称一样:
My
file
1.zip
My
file
2.zip
My
file
3.zip
问题
如何解决这个问题?shell中是否有其他选择?不使用
ls
,并正确引用
for i in My*.zip
do
echo "$i"
done
不使用
ls
,并正确引用
for i in My*.zip
do
echo "$i"
done
不要使用
ls
的输出,请使用:
for f in *.zip; do
echo "processing $f"
done
不要使用
ls
的输出,请使用:
for f in *.zip; do
echo "processing $f"
done
默认情况下,以点开头的文件是特殊的,*
将不匹配它们
默认情况下,以点开头的文件是特殊的,*
将不匹配它们