파일이있는 파일 이름이있는 디렉토리 (전체 경로가 아님) 만 가져 오는 bash 스크립트를 준비했습니다. 파일이 하위 디렉토리에있을 때만 수행해야합니다.하위 폴더가 Linux bash에있을 때만 파일 이름이있는 현재 디렉토리 (전체 경로가 아님) 가져 오기
예 : 입력이 src/email/${sub_dir}/Bank_Casefeed.email
인 경우 출력은 ${sub_dir}/Bank_Casefeed.email
이어야합니다.
입력이 src/layouts/Bank_Casefeed.layout
인 경우 출력은 Bank_Casefeed.layout
이어야합니다. 나는 쉽게 이것을 basename
명령을 사용하여 얻을 수있다.
src/basefolder는 항상 상수입니다. 경우에 따라 (src/email (basefolder) 디렉토리 다음에) 하위 디렉토리가 있습니다.
이 스크립트를 사용할 수 있습니다. 출력을 얻으려면이 스크립트 (모듈이 전자 메일 인 경우에만)를 사용할 수 있습니다. 서브 디렉토리가 다른 모듈에 존재하더라도 스크립트는 작동해야합니다. 아마 전화 번호부를 세어야합니까? 두 개 이상의 디렉토리 (src/basefolder)가 있으면 스크립트는 하위 디렉토리를 가져와야합니다. 두 시나리오를 모두 처리하는 더 좋은 방법이 있습니까?
#!/bin/bash
filename=`basename src/email/${sub_dir}/Bank_Casefeed.email`
echo "filename is $filename"
fulldir=`dirname src/email/${sub_dir}/Bank_Casefeed.email`
dir=`basename $fulldir`
echo "subdirectory name: $dir"
echo "concatenate $filename $dir"
Entity=$dir/$filename
echo $Entity
감사 글렌. sub_dir은 무엇이든 될 수 있습니다. 파일은 런타임 중에 다른 스크립트에 의해 작성됩니다. 그래서이 스크립트에서는 sub_dir 이름을 설정할 수 없습니다. 텍스트 파일에있는 파일 목록. 저것을 취급하는 방법 있는가? – Ela
그 의견이 귀하의 질문에 어떻게 들어 맞는 것인지 이해할 수 없습니다. 도움이 되나요? http://mywiki.wooledge.org/BashFAQ/001 –