2017-09-15 169 views
0

特定目錄我有這些文件:bash腳本將所有文件從當前目錄轉移到基於名稱

  1. 100-1.jpg
  2. 100-2.jpg
  3. 200-1.jpg
  4. 200-2.jpg

我希望這些基於文件名被轉移到特定的文件夾

  1. 100/100-1.jpg
  2. 100/100-2.jpg
  3. 200/200-1.jpg
  4. 200/200-2.jpg

我如何做這個?

我已經試過到目前爲止

cd ~/images 
for f in *.jpg 
do 
    mv -v "$f" ~/images/${f}/${f%}.jpg 
done 

我怎麼知道我切劃線e.g 200-1至200並將其存儲在一個變量之前的字符串?

,所以我可以做這樣的

cd ~/images 
    for f in *.jpg 
    name="$f without the .jpg" 
    do 
     mv -v "$f" ~/images/${f}/${f%}.jpg 
    done 
+0

你嘗試過這麼遠嗎? –

+0

你幾乎在那裏,改爲'echo mv -v「$ f」〜/ images /「$ {f% - *}」/「$ {f}」'。如果這反映了所有文件的正確的cmd,那麼刪除'echo'。祝你好運。 – shellter

+0

哇它的作品。謝謝 – Kenneth

回答

1
#!/bin/bash 
cd ~/images 
for f in *.jpg 
do 
    mkdir -p ${f%-*} 
    echo ${f%-*} 
    mv "$f" ~/images/${f%-*}/${f%} 
done 
相關問題