我有一个来自 MS-DOS 背景的不幸——但至少它让我意识到 Linux 是多么强大。我一直在努力让我的 Linux-Fu 达到标准,但有几件事可以用 DOS 完成,我不确定如何用 Linux最容易地完成:
重命名多个文件 - 使用两个通配符
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
Run Code Online (Sandbox Code Playgroud)
我知道我可以find -exec
在这里使用,但可以使用更短的语法——也许mv
带有一些特殊的标志或语法?我想这的关键是第二个 *
通配符,因为 linux 对第一个通配符应该没有问题(即我知道如何选择我想使用通配符重命名的文件)
重命名单个文件 - 使用一个通配符
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Run Code Online (Sandbox Code Playgroud)
这在重命名长而笨重的文件名时特别有用。我想也许我可以用它mv file1.txt $1.bak
来结束,file1.txt.bak
这也是可以接受的,但我不确定您是否可以$1
使用 shell 命令引用内联参数。同样在这种特殊情况下,ms-dos 如何将*
通配符混为一谈以用作文件名的一部分的一种捕获/替换匹配,这很方便。
使用通配符过滤目录列表 …