Duc*_*cky 13 linux centos rename
我有一组:名称中包含(冒号)的文件。我需要:用-(破折号)替换。
有没有一种简单的方法可以在脚本中做到这一点?
示例文件名: 2013-10-11:11:52:08_055456663_045585_.txt
sds*_*sds 21
一个简单的 1-liner 应该做(假设 Posixsh兼容的外壳):
for f in *:*; do mv -v "$f" $(echo "$f" | tr ':' '-'); done
Run Code Online (Sandbox Code Playgroud)
解释:
for ... in ...; do ...; done是一个循环
*:* 匹配当前目录:中名称中包含的所有文件和目录
f 依次分配给循环中的每个这样的文件名
mv将其第一个参数重命名为第二个参数;-v(详细)要求它打印它的作用;此选项是特定于GNU-utils 的,因此它在 Linux 上可用,但在 Solaris 上不可用
$(...) 在子 shell 中执行代码并替换输出
echo 将其参数打印到标准输出
tr 读取标准输出并根据提供的映射翻译字符
如果您正在使用bash,您可以通过替换为来避免产生$()带有子进程 ( tr)的额外外壳 ( ) 。$(...)${f//:/-}
| 归档时间: |
|
| 查看次数: |
28093 次 |
| 最近记录: |