我已經搜索了這個,但我想這對於處理路徑沒有太大的需求。 因此,我試着用bash腳本寫一個bash腳本來使用tta和cue文件轉換我的音樂集合。 我的目錄結構如下:/Volumes/External/Music/Just/Some/Dirs/Album.tta用於tta文件和/Volumes/External/Cuesheets/Just/Some/Dirs/Album.cue用於提示表。在BASH中獲取相對路徑
我目前的做法是將/ Volumes/External設置爲「root_dir」,並獲取album.tta文件的相對路徑爲$ ROOT_DIR/Music(在這種情況下,這將是Just/Some/Dirs/Album.tta) ,然後將此結果添加到$ ROOT_DIR/Cuesheets,並將.tta的後綴更改爲.cue。
我目前的問題是,該dirname返回路徑,這意味着/ Volumes/External/Music/Just/Some/Dirs不會被轉換爲./Just/Some/Dirs/當我的當前文件夾爲$ ROOT_DIR /音樂和絕對路徑被給出。
地址://這裏是腳本如果任何人有類似的問題:
#!/bin/bash
ROOT_DIR=/Volumes/External
BASE="$1"
if [ ! -f "$BASE" ]
then
echo "Not a file"
exit 1
fi
if [ -n "$2" ]
then
OUTPUT_DIR="$HOME/tmp"
else
OUTPUT_DIR="$2"
fi
mkfdir -p "$OUTPUT_DIR" || exit 1
BASE=${BASE#"$ROOT_DIR/Music/"}
BASE=${BASE%.*}
TTA_FILE="$ROOT_DIR/Music/$BASE.tta"
CUE_FILE="$ROOT_DIR/Cuesheets/$BASE.cue"
shntool split -f "${CUE_FILE}" -o aiff -t "%n %t" -d "${OUTPUT_DIR}" "${TTA_FILE}"
exit 0
我不清楚這裏的問題是什麼。 – drysdam
問題是如何從絕對路徑中獲得某個相關部分。在我的情況下,$ BASE和如何創建它是相關的部分。我告訴我的意圖的原因是,我不確定我的方法是否聰明,因爲我相信總會有更好的方法去做任何事情。 –