Bash in Context

2020-03-01

基本的Shell增删改查命令大家比较容易理解,也不容易忘记。但是我们常常遇到一些稍复杂的小任务时还是会觉得一时无从下手。这类稍复杂的小任务有的需要多个命令组合,有时则需要用到一些命令的冷门参数,网上实现方式五花八门,前用后忘是常态。因此现在把当时面临的应用场景也一并记录下来,有时间再补充比较不同方法的优缺点。然后综合语法的可读性、命令的性能以及尽量使用主流命令的原则来取舍,便于理解、记忆和日后速查。


文件增删改查

任务1:只把当前目录下所有的文件移动到./ex2/下,不移动当前目录中的其他目录(只移动普通文件)

1
2
3
4
5
6
find ./ -maxdepth 1 -type f | xargs -i -t mv {} ./ex2/
# -maxdepth 1 限制查找深度在当前目录,默认会把子目录中的文件也找出来
# -type f 查找类型是普通文件,这个参数是本任务的关键
# xargs -i 管道符前的输出会被逐项输出 -t 将后续命令输出后再执行,可以检查语法
# {} xargs的优势是可以执行参数的位置,如果是|管道符就只能当作后续命令的输入
# 补充:-exec和xargs比较近似,以后尽量使用xargs
Tags: Bash

扫描二维码,分享此文章