我目前正在编写bash脚本,并且已获取文件位置列表。但是我注意到一些文件位置在文件名中有空格,例如。:/ 1 2 3.txt在我的情况下,此类文件会影响诸如cp之类的命令的使用。使用“”并将其转义会导致在“”之后有一个空格。例如:“ / 1 2 3.txt”在文件位置前面有一个空格,我得到一个错误,指出“ cp:不能统计`/ 1 2 3.txt”:否这样的文件或目录”。是否还有其他方法用“”引用文件位置,以便可以使用cp命令?
复制新文件中文件名中包含空格的所有文件,并使用相同的名称包含下划线而不是当前目录中的空格:
for f in *\ *; do cp -- "$f" "${f// /_}"; done
有关如何安全处理文件名的信息,请参见BashFAQ 20。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句