2013-03-24 63 views
0

我試圖寫一個腳本,將文件移動到其基於文件名創建 有完全相同的名稱,但不同的文件擴展名的每個文件的2個copys文件夾。多個文件到一個文件夾殼腳本

例如

以前

dir1 - one.txt one.rtf two.txt two.rtf other.txt other.rtf 

dir1 - one two other 

dir1/one - one.txt one.rtf 

dir1/two - two.txt two.rtf 

dir1/other - other.txt other.rtf 

我以前把一個文件夾的腳本,但林不知道如何得到它把多個文件後成1個文件夾

繼承該文件到文件夾的代碼。

#!/bin/bash 

dir="/home/user1/Desktop/f2f/" 

for file in ${dir}/* 
do 
     mkdir -p "${file/./#}" 
     mv "${file}" "${file/./#}/" 
done 

反正任何幫助,將不勝感激,命名約定和文件的擴展將永遠是相同的,如果可以幫助

回答

0

我不是很確定你的原始腳本的目的是什麼,你似乎生成每個<file>.<extension>名爲<filename>#<extension>一個文件夾,你再放置<file>.<extension>

我猜你正在尋找的版本是這樣一個:

for file in * 
do 
    mkdir -p ${file%.*} 
    mv $file ${file%.*}/ 
done 

請務必使用ungreedy變種室內用單%,你只想從刪除的最後組件(!)文件名。

想象一個名爲first.part.second.part.txt的文件,例如您只想剝去.txt

鑑於之前(find dir1)以下文件夾佈局:

dir1/ 
dir1/two.txt 
dir1/one.rtf 
dir1/two.rtf 
dir1/other.txt 
dir1/other.rtf 
dir1/one.txt 

這將導致以下佈局aftwards(再次find dir1):

dir1 
dir1/other 
dir1/other/other.txt 
dir1/one 
dir1/one/one.rtf 
dir1/one/one.txt 
dir1/two 
dir1/two/two.txt 
dir1/two/two.rtf 

如果那是你所期待的。

+0

沒錯,這就是我一直在尋找的感謝 – user1944817 2013-03-24 02:53:45

相關問題