求教:用Linux命令行实现文中的3个操作

sh/bash/dash/ksh/zsh等Shell脚本
回复
tangwing2
帖子: 3
注册时间: 2012-07-24 3:26

求教:用Linux命令行实现文中的3个操作

#1

帖子 tangwing2 » 2012-07-24 3:31

大家好,有几个个实际问题请大家指点一下:
1,如何一次性完成涉及多文件的命令。
在使用svn时有时需要一次性把很多文件加入版本控制,通过“svn st | grep ?”命令可以得到文件列表,但每行都以‘?’开头所以无法直接通过xargs传给svn add。 请问如何才能把那些?过滤掉呢?
例:
得到的文件列表:
d:\PROJET\ofbizAndroid.git\trunk>svn st | grep !
? main.xml
? logo.png
? bin
? gen
? add.png
希望最终执行的命令:
svn add main.xml logo.png bin gen add.png

2,如何把folder文件夹下所有文件和子文件夹拷贝并覆盖到folder2文件夹,但是不包括以'.'开头的隐藏文件和文件夹。

3,如何用命令行实现两个文件夹的同步。这个听上去要复杂些,不知是否有牛人了解。
头像
sgsdxzy
帖子: 430
注册时间: 2008-07-19 11:14

Re: 求教:用Linux命令行实现文中的3个操作

#2

帖子 sgsdxzy » 2012-07-24 9:46

1、svn st | sed “^\?/s/^\?//g” |xargs...
2、(pwd=folder时) for i in *; do `echo "$i" | grep "^\."` || mv "$i" (where is folder2); done
3、用rsync行吗?

不一定对,你先试试看……
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求教:用Linux命令行实现文中的3个操作

#3

帖子 lilydjwg » 2012-07-24 10:47

代码: 全选

>>> cat =svnaddall
#!/bin/bash

# 将当前目录下的所有文件纳入 svn 版本控制

svn status|awk '{if($1 == "?"){print $2}}'|xargs svn add
tangwing2
帖子: 3
注册时间: 2012-07-24 3:26

Re: 求教:用Linux命令行实现文中的3个操作

#4

帖子 tangwing2 » 2012-07-24 15:40

sgsdxzy 写了:1、svn st | sed “^\?/s/^\?//g” |xargs...
2、(pwd=folder时) for i in *; do `echo "$i" | grep "^\."` || mv "$i" (where is folder2); done
3、用rsync行吗?

不一定对,你先试试看……
谢谢你的回复` :em01
第一个没能成功不过倒是给了我提示,正确的命令; svn st | grep ? | sed "s/?//" 后面可以接xargs啦
rsync暂时没时间研究呢 回头看看先上班喽 :em09
tangwing2
帖子: 3
注册时间: 2012-07-24 3:26

Re: 求教:用Linux命令行实现文中的3个操作

#5

帖子 tangwing2 » 2012-07-24 15:41

lilydjwg 写了:

代码: 全选

>>> cat =svnaddall
#!/bin/bash

# 将当前目录下的所有文件纳入 svn 版本控制

svn status|awk '{if($1 == "?"){print $2}}'|xargs svn add
Yes, it works!
:em01
回复