Unix - 文件名开头的空格

时间:2015-05-08 23:35:16

标签: linux unix grep removing-whitespace

如何在名称开头用空格命名的文件,然后在没有空格的情况下重命名?顺便说一下,还有其他文件包含“file1名称.ls -l”File1“将显示其中包含”File1“名称的所有文件。

-(BOOL)getUSBChargeCurrent:(int *)current error:(NSError **)error;

如您所见,“File1”的开头有一个空格。如何将“File1”重命名为“Bad_File1”?

由于

2 个答案:

答案 0 :(得分:2)

引用它的名字:

mv " File1" "Bad_File1"
    ^

另请注意"文件1"是一个目录:

drwxr-xr-x     2 root     root     1515 Apr  8 01:36   File1
^

所以你看到的ls -l " File1"是这样的目录的内容。

答案 1 :(得分:0)

您可以将目录中具有前置空格的所有文件或目录移动到其名称,而不会使用类似于以下内容的空格:

for i in *; do [ "$i" != "${i##* }" ] && mv "$i" "${i##* }"; done

它只是使用参数扩展/子字符串提取来测试是否存在包含前导空格的文件或目录,如果存在,则将文件或目录移动到其名称而不带前导空格。您可以自由使用forwhile IFS=$'\n' read -r line循环或find ...来收集所有文件名并执行测试/移动。无论什么适合您的需求。

注意:如果在当前目录以外的目录上运行,则需要删除/添加path组件的前/后测试以适应完整路径。