bash中正确处理文件或路径名中的空格
程序员文章站
2024-01-15 19:47:28
...
笔者在用一个pdftohtml命令把一大堆论文生成网站的脚本书写过程中,遇到一个问题:
论文名称的空格在下面的代码中会被错误分割
#!/bin/bash
for file in $(ls $1) # 这里的$1是第一个输入参数,遍历$1下的文件
do
echo $file
done
目录是这样的
运行结果是这样的,很明显没能处理好空格 "\ "
解决方法很简单,加双引号即可:
#!/bin/bash
for file in "$(ls $1)" # 这里的$1是第一个输入参数,遍历$1下的文件
do
echo "$file"
done
做了个遍历目录下的所有文件的函数,代码如下
#/bin/bash
function getdir(){
for element in "$(ls $1)"
do
dir_or_file="$1/$element"
if [ -d $dir_or_file ]
then
getdir $dir_or_file
else
echo "$dir_or_file"
fi
done
}
getdir $1 # 接受命令行参数
# 如果这个shell文件保存为 getdir, 并且有运行权限: chmod +x getdir
# 运行例如: ./getdir ~/
推荐阅读
-
bash中正确处理文件或路径名中的空格
-
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法_PHP
-
详解在Linux中清空或删除大文件内容的5种方法
-
【文件处理】——字典写入json文件或TXT文件,读取文件中的字典&TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法
-
如何修复在Win 11/10 中复制时无法从源文件或磁盘读取的问题
-
WP8.1程序开发中,如何加载本地文件资源或安装在程序包中的资源。
-
shell脚本中执行时提示“没有那个文件或目录”的解决办法
-
php中检查文件或目录是否存在的代码小结_php技巧
-
Python将文本去空格并保存到txt文件中的实例
-
用python实现的可以拷贝或剪切一个文件列表中的所有文件