Kil*_*átó -3 linux shell find pattern-matching
我在Debian Linux上有大量的文件文件,组织在一个大文件夹树中.我需要的是找到具有特定名称模式的所有文本文件,然后将包含文件夹移动到目标.
例:
/home/spenx/src/a12/a1a22.txt
/home/spenx/src/a12/a1a51.txt
/home/spenx/src/a12/a1b61.txt
/home/spenx/src/a12/a1x71.txt
/home/spenx/src/a167/a1a22.txt
/home/spenx/src/a167/a1a51.txt
/home/spenx/src/a167/a1b61.txt
/home/spenx/src/a167/a1x71.txt
Run Code Online (Sandbox Code Playgroud)
命令:
find /home/spenx/src -name "a1a2*txt"
mv /home/spenx/src/a12 /home/spenx/dst
mv /home/spenx/src/a167 /home/spenx/dst
Run Code Online (Sandbox Code Playgroud)
结果:
/home/spenx/dst/a12/a1a22.txt
/home/spenx/dst/a167/a1a22.txt
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
SK
组合find,dirname并mv与之一起xargs解决您的问题
find /home/spenx/src -name "a1a2*txt" | xargs -n 1 dirname | xargs -I list mv list /home/spenx/dst/
Run Code Online (Sandbox Code Playgroud)
find 将获取文件列表
dirname将提取文件的路径.请注意,它一次只能使用一个参数
mv 将源目录移动到目标
xargs 允许输出一个命令作为参数传递给下一个命令的关键
有关使用的选项的详细信息xargs,请参阅其在终端上执行的手册页man xargs
| 归档时间: |
|
| 查看次数: |
5805 次 |
| 最近记录: |