[string] 경로에서 디렉토리 추출

내 스크립트에는 작업중인 파일 의 디렉토리 가 필요합니다 . 예를 들어 파일 = “stuff / backup / file.zip” . 변수에서 ” stuff / backup / ” 문자열을 가져 오는 방법이 필요 합니다 $file.



답변

dirname $file

당신이 찾고있는 것입니다


답변

dirname $file

출력됩니다

stuff/backup

다음과 반대입니다 basename.

basename $file

출력 할 것이다

file.zip


답변

${file%/*}Urvin / LuFFy가 제안한 것과 같이 사용 하면 외부 명령에 의존하지 않기 때문에 기술적으로 더 좋습니다. 같은 방법으로 basename을 얻으려면 할 수 있습니다 ${file##*/}. 필요한 경우가 아니면 외부 명령을 사용할 필요가 없습니다.

file="/stuff/backup/file.zip"
filename=${1##*/}     # file.zip
directory=${1%/*}     # /stuff/backup

또한 이러한 방식으로 완전히 POSIX를 준수합니다. 도움이 되었기를 바랍니다. 🙂


답변

directorypath에서 가져 오기 filepath:

file="stuff/backup/file.zip"
dirPath=${file%/*}/
echo ${dirPath}


답변

간단히 사용 $ dirname /home/~username/stuff/backup/file.zip

돌아올 것이다 /home/~username/stuff/backup/


답변