기록용으로 남깁니다.
디렉토리명이 포함된 파일 목록이 필요한 경우가 있습니다.
디렉토리명이 1개라면 변수로 만들어서 붙이거나 할 수도 있지만, 이 또한 귀찮을 때가 많습니다.
a -- b
- ba
- bb
a -- c
위와 같은 디렉토리 a, a/b, a/c 와 a/b 디렉토리 안의 파일 ba, bb 가 있을 때 중간 경로인 b와 결합된 파일 목록이나 a 부터 들어가는 파일 목록이 필요할 수 있습니다. 이 때는 ** 을 사용하면 지정된 경로까지 포함되어 출력되는 것을 확인할 수 있습니다.
cd a
ls b/**
b/ba
b/bb
a 부터 시작하는 하위 경로를 포함시키고 싶은 경우에는 a 부터 써주면 됩니다.
ls
a/
ls a/b/**
a/b/ba
a/b/bb
그냥 보는 것이랑 별 차이 없어 보이지만 이 결과를 $() 등과 같이 다른 스크립트의 입력으로 쓰고자 할 때 유용할 수 있습니다.
for f in $(ls -1 a/b/**); do
grep 'version' $f
done
그냥 ls a/b 했다면 이 결과는 ba bb 가 되고 현재 경로에서는 No such file or directory 라는 오류를 볼 수 밖에 없습니다.
'IT > shell' 카테고리의 다른 글
[linux][bash] 파일 크기 감시하기 (0) | 2024.11.11 |
---|---|
[ssh] 명령 주기 (0) | 2022.05.18 |
[shellscript] alias 무시하기 (0) | 2015.06.12 |