Linux中,
find A/** -name "*.*" -exec bash -c "echo -n '文件名:{}|'&&[ -s {} ] && head -1 {}|tr '\n' '|'&&tail -1 {} || echo ''" \;
我的解答思路和尝试过的方法:
我认为就是像if else一样,但我Linux知识太少,想请教下能真正确认是不是真的像 if 这样的朋友来给个确定的答案。
我想要达到的结果:
问题1:这条linux命令中,[ -s {} ]和结尾的||是什么语法?有人用过吗?感谢!
问题2:我的原来的、不加[ -s {} ]的命令是:
find A/** -name "." -exec bash -c "echo -n '文件名:{}|'&&head -1 {}|tr '\n' '|'&&tail -1 {}" ;
我理解这个命令中的&&的作用是用于和后面的字符串连接起来,而加上[ -s {} ]后,[ -s {} ]后又有了一个&&,也是连接符吗?我的这个命令有些巧合,都是&&,所以,我就不明白最终的命令中:
find A/** -name "." -exec bash -c "echo -n '文件名:{}|'&&[ -s {} ] && head -1 {}|tr '\n' '|'&&tail -1 {} || echo ''" ;
[ -s {} ]后面中的&&和其它的&&是同样的东西吗?感谢!