Git, CocoaPods, Xcode, Shell
[Linux, Shell] 리눅스 파이프 (특정 브랜치 제외하고 모든 로컬 브랜치 삭제 방법)
jake-kim
2023. 4. 11. 00:52
리눅스 파이프
- stdin과 stdout을 연결해주는 테크닉
- 터미널에서 ls로 파일들을 출력하고 이 파일들을 대상으로 또 다른 처리를 하고싶은 경우?
- 파이프를 사용하면 stdin - stdout을 연달아 수행이 가능
ex1) 파이프라인 현재 디렉토리를 알파벳 순으로 출력하기
- ls로 stdout을 만들고 이 결과를 stdin으로 sort 명령어로 사용
% ls | sort
README.md
Tuist
scripts
ex2) 앞전에 stdout을 뒷단 명령어의 인수로 받고 싶은 경우? -> xargs 사용
(현재 디렉토리의 모든 파일들에 chmod +x 옵션을 주는 경우)
ls | xargs chmod +x
응용 - 파이프를 통해 브랜치 편리하게 삭제하기
- 로컬에 특정 브랜치만 남겨두고 다 삭제하는 방법
read -p '삭제할 브랜치 이름을 입력하세요: ' branch_name && git branch | grep -v "$branch_name" | xargs git branch -D
- shell script로 생성하여 사용
#!/bin/bash
read -p "삭제에서 제외할 브랜치 이름을 입력하세요: " branch_name
read -p "$branch_name 을 제외한 모든 브랜치를 지우시겠습니까? (y/n)" answer
if [ "$answer" == "y" ]; then
echo "Yes"
cd {your project name}
git branch | grep -v "$branch_name" | xargs git branch -D
else
echo "No"
fi
* 참고
https://architectophile.tistory.com/9
https://en.wikipedia.org/wiki/Pipeline_(Unix)
https://hwan-shell.tistory.com/324