要从git状态中仅获取目录名,可以使用以下Bash命令:
git status --porcelain | awk '{if ($1 == "D") print $2; else print $2}' | xargs -n 1 dirname | sort -u
这个命令将首先使用git status --porcelain获取git仓库的状态。--porcelain选项会以一种简洁的格式显示状态,每一行表示一个文件或目录的状态。
然后,使用awk命令过滤输出。如果状态是D(表示删除),则打印目录路径;否则,打印完整的路径。
接下来,使用xargs命令将每一行的路径作为参数,并使用dirname命令提取目录名。-n 1选项表示每次只处理一个参数。
最后,使用sort -u命令对结果进行排序,并去除重复的目录名。
这样,你就可以仅获取git状态中的目录名。