【发布时间】:2012-01-02 00:56:53
【问题描述】:
我已经搜索过这个,但我想对使用路径的需求并不大。 所以我正在尝试两个编写一个 bash 脚本来使用 tta 和 cue 文件转换我的音乐收藏。 我的目录结构如下: /Volumes/External/Music/Just/Some/Dirs/Album.tta 用于 tta 文件, /Volumes/External/Cuesheets/Just/Some/Dirs/Album.cue 用于提示表。/External/Cuesheets/Just/Some/Dirs/Album.cue p>
我当前的方法是将/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 在我当前文件夹为 $ROOT_DIR 时不会转换为 ./Just/Some/Dirs/ /Music 并给出了绝对路径。
如果有人遇到类似问题,请添加://这是脚本:
#!/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
【问题讨论】:
-
我不清楚这里的问题是什么。
-
问题是如何从绝对路径中获取某个相对部分。就我而言, $BASE 以及如何创建它是相关部分。我之所以告诉我的意图是因为我不确定我的方法是否聪明,因为我相信总有更好的方法来做任何事情。