作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想重命名名称中包含下划线的所有文件和文件夹,并将下划线替换为连字符。
目前我正在使用以下代码,
重命名 '_' '-' */*/*
它工作正常,但现在显示“参数列表太长”
最佳答案
你可以试试这个:
$ 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
这会重命名所有目录,然后重命名所有文件(for
遍历 d f
),因为我无法让它在一次迭代中完成所有重命名。
关于linux - 如何在 Linux 中将所有包含下划线的文件和文件夹重命名为连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894225/
我是一名优秀的程序员,十分优秀!