在这个线程中有一个对我非常有用的关于用尾随空格重命名文件夹的答案: 删除文件或文件夹名称中的前导或尾随空格
我不知道如何更改以下命令,以便它也更改子文件夹中的名称。
重命名 -n 's/ *$//' *
我显然已经尝试用“rename -h”自己检查这个,但我看不到解决方案。
有人可以帮我弄这个吗?
非常感谢提前,
克里斯
在这个线程中有一个对我非常有用的关于用尾随空格重命名文件夹的答案: 删除文件或文件夹名称中的前导或尾随空格
我不知道如何更改以下命令,以便它也更改子文件夹中的名称。
重命名 -n 's/ *$//' *
我显然已经尝试用“rename -h”自己检查这个,但我看不到解决方案。
有人可以帮我弄这个吗?
非常感谢提前,
克里斯
您可能只需要启用
globstar
bash shell 的选项,然后使用**/*
而不是*
:-n
选项是空运行。如果您的子文件夹和文件可能以尾随空格结尾(如评论中所述),那么您将需要首先处理目录树深度1。您可以使用以下
find
命令执行此操作:您可以将
.
(current directory) 替换为特定的起始目录path/to/dir
。使用
-execdir
而不是-exec
确保替换仅应用于文件或目录名称(而不是整个路径),因此即使正则表达式模式未锚定到文件名也是安全的。1 . 否则它在测试时看起来
-n
不错,但在实际应用时可能会失败,因为它会尝试重命名已更改名称的目录中的文件首先,让我们看看你对
rename
命令的使用。我将其更改为匹配带有或不带有扩展名的文件的尾随空格:然后对子文件夹中的所有文件和文件进行操作,可以使用
find
命令查找某个路径下的所有文件或目录并使用
-exec
find 的子命令对这些文件或目录进行操作。将重命名命令放在子命令之后exec
。例如: