要从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状态中的目录名。