Linux 命令行操作小知识

记录的不仅是命令行带来的高效与便捷,更是令我感到欣喜的瞬间
                            -M23

查看进程的工作路径

Linux启动一个进程后,系统会在shell /proc 下创建一个以PID命名的文件夹,通过ls -l 命令查看cwd指向即可。

Linux 命令行操作小知识_第1张图片
Paste_Image.png

同构目录文件复制

需要将src文件夹中的部分文件,copy到同构的dst文件夹下。同构指的是src和dst有相同的hierarchal subdirectories,或者dst可包含src的子目录。
比如下图左右两个:

Linux 命令行操作小知识_第2张图片
同构目录.png

我使用的方法如下:

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命令分割列并累加,即可实现目标。

没图说个..

你可能感兴趣的:(Linux 命令行操作小知识)