我想将 ls 命令的输出存储在我的 bash 脚本中的一个变量中,并循环使用每个文件名,但是例如,当我执行 variable= 时,目录中的一个文件名为“Hello world” $(ls)
“Hello” 和 “world” 最终成为两个单独的条目,当我尝试这样做时
for i in $variable
do
mv $i ~
done
它显示文件“Hello”和“world”不存在的错误。 有什么方法可以访问当前目录中的所有文件并运行一些命令,即使文件名中有空格也是如此。
最佳答案
如果必须,dirfiles=(/path/of/interest/*)
。
并接受警告不要解析 ls
的输出!
我知道您是新手,我愿意提供帮助。但我(我们?)要向您提供一个对您提出问题的方式有很大帮助的答案并不容易。
根据我目前所听到的,您似乎对参数扩展在 shell 中的工作方式没有基本的了解。以下两个链接将对您有用: Matching Pathnames , Parameters
现在,如果您手头的任务是对满足特定条件的文件进行操作,则 find(1)
可能会完成这项工作。
关于linux - 存储由名称中带有空格的文件组成的 ls 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790423/