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 次 |
最近记录: |