thomjiji

DIT work useful commands

2025-07-03 · cli DIT

注意事项

安全

运行终端命令的时候,你必须清楚的知道你在做什么。不要盲目地把一串命令复制粘贴过来,一敲回车就直接运行了。

如何知道一串终端命令究竟在做什么?大多数终端的命令和程序都有一个叫作 man page 的东西,它是这个命令、程序的 manual 手册。一般来说你可以在里面查阅到关于运行这个命令的所有信息,以及各种自定义选项。只需要在你要运行的命令前加上 man,比如 man findman gdu

du

macOS 自带的 du 命令行为比较奇怪,我们使用 GNU 版本的 gdu

brew install coreutils

这将会下载安装 gdu 命令到本机。

如何知道一个文件有多大

gdu -sbc --si /path/to/dir

以上命令会以 MB、GB 的形式输出文件大小,如果想得到更加明细的字节数,则去掉 --si

gdu -sbc /path/to/dir

这样输出的字节数与 Finder Cmd+i 出来的字节数是匹配的。

实例

$ gdu -sbc --si '/Volumes/DIT-4T#16/<project>/素材/'
395G    241009
184G    241020
853G    241022
137G    241027
226G    241111
70G     241119
641G    241129
116G    241216
735G    241217
435G    241219
709G    241220
1.7T    241221
96G     241226
6.3T    total

$ gdu -sbc '/Volumes/DIT-4T#16/<project>/素材/'
394135765498    241009
183963861229    241020
852788569255    241022
136063767206    241027
225994040381    241111
69765056933     241119
640764426683    241129
115596465862    241216
734707008434    241217
434676339401    241219
708259543121    241220
1656050830994   241221
95502148123     241226
6248267823120   total

find

找出所有 macOS 生成的以 . 开头的文件

find . -type f -iname ".*" | less   # 找出所有的 .DS_Store
find . -type f -iname "._*" | less  # 找出所有的以 ._ 开头的文件

找出所有 MP4 文件并且知道它们分别多大,以及它们加起来多大

find . -type f -iname '*.mp4' -exec gdu -sbc {} + | sort -h

或者直接使用 gdu 命令,加上一点正则表达式也可以得到同样结果:

gdu -sbc --si **/*{MP4,mp4} | sort -h

tree

跨文件夹检查文件名连续性

tree -P '*MP4' /path/to/dir

通过将路径指向比如 CAM 文件夹:CAM#1,tree 命令会遍历该文件夹之下所有文件,筛选出 MP4 后缀的文件将它们放在一个清晰的树状层级结构里输出出来。

实例

tree -P '*MP4' /Volumes/DIT-4T#20/<project>/素材/FX3#1/
FX3#1/
├── CARD#A
│   ├── AVF_INFO
│   ├── M4ROOT
│   │   ├── CLIP
│   │   │   ├── 250628_TT_10001.MP4
│   │   │   ├── 250628_TT_10002.MP4
│   │   │   ├── 250628_TT_10003.MP4
│   │   │   ├── 250628_TT_10008.MP4
│   │   │   ├── 250628_TT_10009.MP4
│   │   │   ├── 250628_TT_10010.MP4
│   │   │   ├── 250628_TT_10012.MP4
│   │   │   ├── 250628_TT_10014.MP4
│   │   │   ├── 250628_TT_10015.MP4
│   │   │   ├── 250628_TT_10016.MP4
│   │   │   ├── 250628_TT_10017.MP4
│   │   │   ├── 250628_TT_10019.MP4

xxhash

对当前路径下所有 MP4 文件批量生成校验值

xxh64sum **/*{MP4,mp4}

可以快速的对比两个双备盘中某张卡里素材的完整性。有时候在 offload 的过程中可能出现一些问题,导致正常的 offload 流程没法完成,比如卡读取错误,我们只能用最原始的方式直接 Finder 将读取失败的某一条手动拷贝到两个盘。这种非标准 offload、双备流程下,我们需要更严格的检验方式。校验值是唯一的金律。

实例

$ cd '/Volumes/GSJ#543/<project>/素材/<shooting_day>'
$ xxh64sum **/*{MP4,mp4}
9d6d75135f9cd3e9  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10001.MP4
68516a302147d2be  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10002.MP4
287b115c97ab2238  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10003.MP4
0f8dabb33462624f  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10008.MP4
6489583ee962da7d  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10009.MP4
c12f36991bbe43f9  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10010.MP4
6553bb0e0434e264  FX3#1/CARD#A/M4ROOT/CLIP/250628_TT_10012.MP4

ls -lO, ls -l@, GetFileInfo, xattr

ls -lO # show file flags (BSD-style)
ls -l@ # show extended attributes
xattr # inspect extended attributes in detail
xattr filename
xattr -l filename