내 스크립트에는 작업중인 파일 의 디렉토리 가 필요합니다 . 예를 들어 파일 = “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/