我希望重命名所有文件和文件夹中包含下划线的名称,并将下划线替换为连字符,以下是当前使用的代码:
rename '_' '-' */*/*
。它以前有效,但现在显示“参数列表过长”。rename '_' '-' */*/*
。它以前有效,但现在显示“参数列表过长”。
$ tree foo
foo
├── dir_1
│ └── foo_file_2
└── file_1
1 directory, 2 files
$ for ft in d f; do find foo -type $ft -execdir sh -c 'mv "$0" "${0//_/-}"' {} \; ; done 2>/dev/null
$ tree foo
foo
├── dir-1
│ └── foo-file-2
└── file-1
1 directory, 2 files
d f
上的for
循环),因为我无法使其在一次迭代中完成所有重命名。
-exec
选项的 find 命令。 - alk