我是一個總的小白,但我想出了這個腳本執行以下操作:bash腳本優化文件重命名
我有一個在那裏與未知的文件夾名稱裏面的RAR文件的子文件夾名爲「中的unrar」文件夾中。 現在我輸入unknownsubfolder,在unknownsubfolder中找到rar文件並unrar它。 之後,我找到了新文件,並用unknownsubfoldername將其重命名。現在我抓住該文件並將其移至./unrar。
#!/bin/bash
cd /home/user/unrar/
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.rar" -execdir unrar e -r '{}' \;); done
echo "$(tput setaf 2)-> unrar done!$(tput sgr0)"
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.mkv" -exec mv '{}' "${PWD##*\/}.mkv" \;); done
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.mp4" -exec mv '{}' "${PWD##*\/}.mp4" \;); done
for dir in /home/user/unrar/*;
do (cd "$dir" && find -name "*.avi" -exec mv '{}' "${PWD##*\/}.avi" \;); done
cd /home/user/unrar
find -name "*.mkv" -exec mv '{}' /home/user/unrar \;
find -name "*.mp4" -exec mv '{}' /home/user/unrar \;
find -name "*.avi" -exec mv '{}' /home/user/unrar \;
這正常工作與大多數文件,但在某些情況下,它不會
我想找到* .rar程序在DIR和的unrar它。 (.mkv | .avi | .mp4)應重命名爲DIR(.mkv | .avi | .mp4)並移至./unrar
這是我的文件結構。
./unrar/
- unknownsubfolder/
-file.rar
-file.r00
-....
- unknownsubfolder1/
- s01/
- file.rar
- file.r00
- ....
- s02/
- file.rar
- file.r00
- ....
- ....
如果case1,unrar「/unknownsubfolder/file.rar」並獲得「x.mkv」。該文件被從 「x.mkv」 到 「unknwonsubfolder.mkv」 重命名並移動到 「./unrar/unknownsubfolder.mkv」 (相同帶* .AVI + *的.mp4)== PERFEKT
如果情形2,在我的腳本unknownsubfolder/s01/file.rar將被unrard,但不會重命名爲s01.mkv insted unknwonsubfolder1.mkv。 (如果有更喜歡S02,S03,S04 ...)我一直在./unrar一個unknownsubfolder.mkv文件)==錯誤輸出
,所以我想結束了,我有3個問題
如何獲取重命名文件的正確DIRname?或者,我如何輸入unknownsubfolder/s01 ....?
有沒有辦法從查找中排除單詞?有時「unknownsubfolder」包含另一個名爲「sample(.mkv | .avi | .mp4)」的文件夾+文件。我想排除這一點,以防止原始文件被示例文件覆蓋。有時會發生。
我相信我可以結合一些代碼,使其更短。有人可以解釋一下嗎?所以我如何將mkv,avi和mp4整合到一行中。
問候,袋熊
(編輯:爲更好地理解)
我是否正確理解,在有問題的情況下,您在unknownsubfolder中有30個子文件夾而不是一個rar文件?正如你所說的那樣,人們可能會認爲它只是一個名爲'subfolder1-30'的文件夾。那些子文件夾是否還包含一個單一的rar文件? – nautical
右鍵,unknownsubfolder最多可包含30個子文件夾,每個子文件夾都包含rar中的壓縮視頻。 – wombat