
看来前端程序员也要学点运维用的工具啊。今天遇到需要在工程里面递归删除.svn 的需求,网上查了下看到:
find . -type d -name ".svn"|xargs rm -rf; 顺利搞定问题。但随后执行
svn add . 发现有好多 *.a 文件被 global-ignore 了。自己 svn add . --no-ignore ,又有本地 ignore ,不想继续挖坑下去,一看到之前执行的指令,是不是也可以结合起来直接递归把目录里面的 *.a 一起 svn add 进入?>
然后自己 man 了下 find ,看了下参数,发现貌似可以这么玩:
find . -type f -name "*.a"|xargs svn add; 试了一下,果然好用到爆炸,以前咋就没有意识到这些 shell command 的威力呢?
来来来,大伙来分享下,还有哪些你知道的实用瑞士军刀?例如 find 结合 |xargs Xcommand ?
1 iOran OP 帖子不要沉了啊。我先说个最普罗大众的: ``` ls -al ``` |
2 aheadlead 2017 年 2 月 6 日 最近发现 logrotate 命令挺好用的 |
4 ryd994 2017 年 2 月 6 日 via Android 这………怕是你还不知道 shell 脚本也是语言吧……… awk ,这这又是一本书 sed/grep , regex 要学好 xargs 你说过了,但你估计不知道-P -i -n 的玩法 find 自己就可以-exec uniq/head/tail/wc 这都是常用了 Unix 世界就是这样,每个程序都很简单,但串起来可以很强大 顺带一提,你的命令其实可以更简单 先不加看一遍,然后 find . -type d -name ".svn" -delete |
6 aheadlead 2017 年 2 月 6 日 @iOran 哈哈 2#是手滑发出来的, 本来想写点补充, 但是因为考虑到这个命令可以顾名思义,写了一会又关掉了。 看到你的 9# ,我打开我刚写的脚本看了看,发现我其实记错命令了,实际是 savelog 。 这个 savelog 命令是最近发现的,可以很方便的做 logrotate 。 shell 脚本有时要打日志,每次执行生成一个日志文件(如: rich.log )。 通常没有必要保存太多的日志(比如只用保留最后 7 个日志文件)。 通过这个命令,就可以简单实现: 在每次脚本执行完毕之后,来一个: $ savelog -c 7 rich.log |
8 R18 2017 年 2 月 6 日 via Android rm -rf / |
9 ETiV 2017 年 2 月 6 日 via iPhone grep "search something" -r * --include=*.php |
10 lhbc 2017 年 2 月 6 日 grep sed awk 不懂这些怎么出来行走江湖 sudo rm -rf /* 执行,然后恢复数据,你就是资深运维了 |
11 WeeH9T 2017 年 2 月 6 日 楼上的各位,都不带情景的么,谁会直接 rm -rf / 我来设定情景 我擦,这个目录好深啊,删除一个目录下的东西。 rm -rf /dir1/dir2/dir3/dir5/dir6 /* 我草泥马!!!! |
13 UnisandK 2017 年 2 月 6 日 @hambut http://coolshell.cn/articles/4875.html 青井来了 doge |
17 simple4wan 2017 年 2 月 6 日 sudo dd if=/dev/zero of=/ |
18 manhere 2017 年 2 月 6 日 @simple4wan 你这个磁盘碎片整理我给 100 分 |
19 ersic 2017 年 2 月 6 日 via Android cd - |
20 hahalala 2017 年 2 月 6 日 ls -1 chmod -R 777 / |
21 dtfm 2017 年 2 月 6 日 via Android linux 刚入坑不久,说几个简单的, shell 为 zsh ,不确定 bash 是否兼容。 systemd-analyze blame 由慢到快查看开机时间占用。 直接输 cd ,不带参数就是切到 home 目录下。 大家都知道 ll 是 ls -l 的简化,但其实输单独一个 l 也可以。 切回上一个访问目录 cd - 。 切回父目录的父目录, cd ../..,以此类推。 统计某文件个数 ll l grep xxx l wc -l |
22 lun10439547 2017 年 2 月 6 日 果然有 rm -rf 这个东西。。。。 |
23 sundong 2017 年 2 月 6 日 别抢饭碗啊 =。= |
24 syahd 2017 年 2 月 6 日 locate ,贼快的文件索引搜索 |
25 cctv6 2017 年 2 月 6 日 ls -lah cd ../ . rm cd mv vim chmod htop |
26 lydasia 2017 年 2 月 6 日 rm -rf...... |
27 OrangeM21 2017 年 2 月 6 日 lz rz |
28 jasontse 2017 年 2 月 6 日 via Android |
29 DoraJDJ 2017 年 2 月 6 日 ls -laZ grep 自己觉得经常用的比较方便的指令就这些了 |
30 xratzh 2017 年 2 月 6 日 via iPhone echo sed grep tar scp |
32 fytriht 2017 年 2 月 6 日 du -sh 查看文件夹 /文件的大小 |
34 xuboying 2017 年 2 月 7 日 via Android 当年会个 perl 可以打死 awk sed uniq wc find grep tail head sort |
36 syahd 2017 年 2 月 7 日 @patx find 慢啊, locate 速度快,基本 updatedb 可以秒完成,而我 windows 上的 everything/masterseeker 都要花三四秒建立索引 |
37 abmin521 2017 年 2 月 7 日 via Android |
38 czheo 2017 年 2 月 7 日 ! |
39 bikegl 2017 年 2 月 7 日 怎么没有人说 sl 这个命令, 具我的研究它可以用来测试网络是否稳定 如果稳定的话会有一列火车帽着白烟从屏幕右边向左边疾驰而过 如果不稳定火车就会一卡一卡的走不动 |
40 jarlyyn 2017 年 2 月 7 日 find sed grep |
41 shellfly 2017 年 2 月 7 日 |
42 aristotll 2017 年 2 月 7 日 r#33 @dtfm 其实都是语法糖 你 `alias` 就能看见了 ``` $alias -='cd -' ...=../.. ....=../../.. .....=../../../.. ......=../../../../.. 还有很多.... `` |
43 popu111 2017 年 2 月 7 日 如何快速上天: chmod -R 000 / 见不到下班了 |
44 UnknownR 2017 年 2 月 7 日 |
45 loryyang 2017 年 2 月 7 日 shell 使用技巧是无止境的,有时间就学几手 https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md 如果让我投票,我投 alias 一票, ctrl+r 两票 |
46 cosven 2017 年 2 月 7 日 目前感受: 入门: cd, ls, cat, less... 一级: grep, find... 二级: awk, xargs...据说 sed 也是 三级: 待补充 |
47 QAPTEAWH 2017 年 2 月 7 日 alias emcas=emacs alias emasc=emacs |
48 xiaket 2017 年 2 月 7 日 直接翻一遍 LPI 认证那本书吧. |
49 Chewbacca 2017 年 2 月 7 日 while read -d " "; do sl; done 孩子不到 1 岁的时教会按空格看火车,按了一年多了 |
50 loading 2017 年 2 月 7 日 via Android sl |
52 wildcat007 2017 年 2 月 7 日 |
54 DaCong 2017 年 2 月 7 日 |
55 SeanQu 2017 年 2 月 9 日 cmatrix 装逼神器 |