2010-06-10 81 views
1

我在做這樣的事情:從Linux命令行逃脫循環

for f in `find -iname '*.html'`; do scp $f remoteserver:$f; done; 

我已經通過了1000個文件約3得到了,我已經決定我要放棄操作。

CTRL + C只能轉義SCP登錄提示並將我帶到下一個,而不是轉義for循環。

有沒有比按CTRL + C 9997次更好的方法?

謝謝!

回答

5

你應該學會以檢查所運行的進程退出狀態 - 特別是如果你在一個循環中運行它們:

for f in `find -iname '*.html'`; do scp $f remoteserver:$f || break; done; 

通知的|| break位。

+0

謝謝你。頂尖。 – aidan 2010-06-11 11:01:44

0

嗯..按CTRL + C兩次在非常快的連續,似乎這樣的伎倆......

+0

是的。如果你足夠快的話,這是有效的...看到我的答案更可靠的東西;) – neuro 2010-06-10 16:26:48

+0

啊,是的,就是這樣,他應該擊中CTRL-C *** 9998 ***次! – 2010-06-10 18:02:01

1

使用bash的「陷阱」內置捕集信號。這樣,您就可以捕獲你按Ctrl-C和做...退出:)

MY2C

+0

感謝您的信息 - 這是我不知道的。 – aidan 2010-06-11 11:15:26

+0

歡迎:) – neuro 2010-06-14 16:47:34

2

同時按下CTRL +ž暫停任務,然後使用kill %1殺死任務。

您可能會發現xargs是實現此任務的更好方法。或者rsync。或者甚至將HTML文件壓縮到一個存檔中,然後將其壓縮。但這可能是StackOverflow的主題。

+0

感謝您的提示。我通常會使用xargs和rsync,但我只是以此爲例。 – aidan 2010-06-11 11:14:45