Bash - 将多个子文件夹从挂载的 fs 存档到本地文件夹
Bash - Archive multiple subfolders from mounted fs to local folder
我认为我的想法很简单,但由于我现在已经花了 4 个小时,所以我想我可能需要帮助。
我想从存储在安装的 fs 上的音乐库创建 rar 档案,每个档案都有库外的子文件夹名称,但我希望直接在本地系统上创建档案。
以下两种解决方案都会在库中创建存档,但不会在我的本地 fs 上创建。
for folder in /mnt/storage01/lib/audiobook/entertainment*/; do rar a -m5 -v100m -r "${folder%/}.rar" "$folder"; done
或
find /mnt/storage01/lib/audiobook/entertainment/. -mindepth 1 -maxdepth 1 -exec rar a -m5 -v100m -r -w {}.rar {} \;
添加
... -v100m -r -w "../home/{}.rar" {} \;
不幸的是,最后只导致了一个名为 "home.rar" 的存档,其中收集了所有子文件夹。至少在我当地的 fs..
我在监督什么?
将查找与 read/while 一起使用:
# -- sample code (replace echo output with actual command) --
save_folder="/tmp/"
find /tmp/testing/ -maxdepth 1 -type d | while read fpath; do
echo "rar a -m5 -v100m -r \"${save_folder}$(basename ${fpath%.*}).rar\" \"$fpath\""
done
输出(只是回应):
rar a -m5 -v100m -r "/tmp/14.rar" "/tmp/testing/14"
rar a -m5 -v100m -r "/tmp/80.rar" "/tmp/testing/80"
rar a -m5 -v100m -r "/tmp/13.rar" "/tmp/testing/13"
rar a -m5 -v100m -r "/tmp/16.rar" "/tmp/testing/16"
rar a -m5 -v100m -r "/tmp/2.rar" "/tmp/testing/2"
rar a -m5 -v100m -r "/tmp/100.rar" "/tmp/testing/100"
rar a -m5 -v100m -r "/tmp/17.rar" "/tmp/testing/17"
我认为我的想法很简单,但由于我现在已经花了 4 个小时,所以我想我可能需要帮助。
我想从存储在安装的 fs 上的音乐库创建 rar 档案,每个档案都有库外的子文件夹名称,但我希望直接在本地系统上创建档案。
以下两种解决方案都会在库中创建存档,但不会在我的本地 fs 上创建。
for folder in /mnt/storage01/lib/audiobook/entertainment*/; do rar a -m5 -v100m -r "${folder%/}.rar" "$folder"; done
或
find /mnt/storage01/lib/audiobook/entertainment/. -mindepth 1 -maxdepth 1 -exec rar a -m5 -v100m -r -w {}.rar {} \;
添加
... -v100m -r -w "../home/{}.rar" {} \;
不幸的是,最后只导致了一个名为 "home.rar" 的存档,其中收集了所有子文件夹。至少在我当地的 fs..
我在监督什么?
将查找与 read/while 一起使用:
# -- sample code (replace echo output with actual command) --
save_folder="/tmp/"
find /tmp/testing/ -maxdepth 1 -type d | while read fpath; do
echo "rar a -m5 -v100m -r \"${save_folder}$(basename ${fpath%.*}).rar\" \"$fpath\""
done
输出(只是回应):
rar a -m5 -v100m -r "/tmp/14.rar" "/tmp/testing/14"
rar a -m5 -v100m -r "/tmp/80.rar" "/tmp/testing/80"
rar a -m5 -v100m -r "/tmp/13.rar" "/tmp/testing/13"
rar a -m5 -v100m -r "/tmp/16.rar" "/tmp/testing/16"
rar a -m5 -v100m -r "/tmp/2.rar" "/tmp/testing/2"
rar a -m5 -v100m -r "/tmp/100.rar" "/tmp/testing/100"
rar a -m5 -v100m -r "/tmp/17.rar" "/tmp/testing/17"