spr*_*man 5 linux unix bash command-line
可能重复:
我可以保留 . 和 .. 出 .* 扩展?
我知道
mv * ~/whatever
mv .* ~/whatever
Run Code Online (Sandbox Code Playgroud)
但它试图移动.和..,这让我很痛苦。有没有办法 mv 所有文件,包括.*文件,但排除当前目录及其父目录?
只需告诉 bash 有第二个字符,它不是点。但是不会移动名为 like 的文件..file。
mv .[^.]* somewhere/
Run Code Online (Sandbox Code Playgroud)
从 Bash 手册,shopt部分:
dotglob If set, bash includes filenames beginning with a `.' in the results
of pathname expansion.
Run Code Online (Sandbox Code Playgroud)
shopt可用于设置某些“shell 选项”,如手册中所述。见man bash。
因此
shopt -s dotglob
mv * ~/whatever
Run Code Online (Sandbox Code Playgroud)
做你想做的。用例如测试它
shopt -s dotglob
ls -d *
Run Code Online (Sandbox Code Playgroud)
查看匹配的文件。
由于它是手册中事实上的 Bash 方式,因此对于具有棘手名称的文件,不应出现隐藏的惊喜。如果是这样,根据定义,它是 Bash 中的一个错误。
| 归档时间: |
|
| 查看次数: |
4111 次 |
| 最近记录: |