记录的不仅是命令行带来的高效与便捷,更是令我感到欣喜的瞬间
-M23
查看进程的工作路径
Linux启动一个进程后,系统会在shell /proc
下创建一个以PID命名的文件夹,通过ls -l
命令查看cwd指向即可。
同构目录文件复制
需要将src文件夹中的部分文件,copy到同构的dst文件夹下。同构指的是src和dst有相同的hierarchal subdirectories,或者dst可包含src的子目录。
比如下图左右两个:
我使用的方法如下:
cd src
tar -cvf all.bcloud.tar BCLOUD #首先创建一个压缩包
find . -name "BCLOUD" -exec tar -uvf all.bcloud.tar {} \; #找到所有文件,并使用tar的-u参数追加到已有的压缩包中
mv all.bcloud.tar ../dst#剩下的我就不废话解释了
cd ../dst
tar -zvf all.bcloud.tar
执行效果就是将所有名叫BCLOUD的文件都copy到了dst目录下,而且不用关心BCLOUD到底在哪个子目录下。
非常适合多个具有相同特征但在不同子目录的文件的移动。
更新
cd src
find . -name "BCLOUD" --exec cp --parents {} dst \;
效果更佳
多行多列输出的信息统计
比如最常用到的,统计某个目录下所有cpp和h文件的代码行数。
find . -name "*.cpp" -o -name "*.h" -exec wc -l {} \; | awk '{total += $1} END{print total}'
简单解释一下,首先通过find命令找到所有文件,然后使用wc命令,最关键的地方在于,wc的-l选项会输出2列,使用awk命令分割列并累加,即可实现目标。