我有两个文件file1.txt,flie2.txt在一个目录中X。我想将这些文件复制到远离目录的当前工作目录中X。
所以我最终得到一个命令:
cp ~/Desktop/dir/dir/dir/dir/file1.txt ~/Desktop/dir/dir/dir/dir/file2.txt .
Run Code Online (Sandbox Code Playgroud)
无论如何,是否可以为两个文件使用一次目录路径,某种快捷方式?
我确信有,Ubuntu 从未辜负我的懒惰 :D
使用[1-2]指示的文件,此用途bash的范围扩展功能:
cp ~/Desktop/dir/dir/dir/dir/file[1-2].txt .
Run Code Online (Sandbox Code Playgroud)
此处范围[1-2]将扩大,因此file[1-2].txt将扩大到file1.txt和file2.txt。
请注意,如果您有多个这样的文件,它们的名称中有不同数量的数字:
file1.txt file12.txt file980.txt file0.txt file23.txt
Run Code Online (Sandbox Code Playgroud)
在这种情况下,使用 的extglob特性bash来启用扩展模式匹配:
$ shopt -s extglob
$ cp ~/Desktop/dir/dir/dir/dir/file+([0-9]).txt .
Run Code Online (Sandbox Code Playgroud)
extglob 模式+([0-9])将匹配文件名之间file和.txt文件名中的一位或多位数字。
另请注意,它不依赖于任何前缀或后缀,例如,如果您有具有名称的文件:
1 02 043 908
Run Code Online (Sandbox Code Playgroud)
这些也可以通过以下方式匹配(和复制):
$ cp ~/Desktop/dir/dir/dir/dir/+([0-9]) .
Run Code Online (Sandbox Code Playgroud)
检查man bash以获得更多的想法。
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |