새소식

사용팁/shell

[bash] 디렉토리 경로명 포함한 ls

  • -

기록용으로 남깁니다.

디렉토리명이 포함된 파일 목록이 필요한 경우가 있습니다.

디렉토리명이 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 라는 오류를 볼 수 밖에 없습니다.

 

'사용팁 > shell' 카테고리의 다른 글

[ssh] 명령 주기  (0) 2022.05.18
[shellscript] alias 무시하기  (0) 2015.06.12
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.