2016-11-08 34 views
0

現狀:創建UNIX腳本進行排序和處理文件

我有一個包含不同文件類型的大約1GB我叫unsorted_files桌面的一個文件夾(JPG,GIF,DOCX,PNG,WAV,MID,CSV)等等

除此之外,我有三個進一步的目錄在桌面上,只保留其專用文件類型(jpg,gif,docx)。

這些專用目錄的實際目錄名稱是:

jpgdirectory 
gifdirectory 
docxdirectory 

問題:

我想創建,我可以在Mac OS 10.10.5,將分離出通過終端運行bash腳本並從unsorted_files文件夾處理這些文件類型,並根據文件類型將它們放入其新創建的目錄中。

即。文件夾中的所有jpg文件將在發送到jpg目錄後發送到jpg目錄,並且所有gif文件將被髮送到gif目錄。

有一點需要注意的是,所有帶有(jpg目錄,gif目錄,docx目錄)的文件類型必須被髮送到雜項

我怎麼能從bash腳本的角度來實現這個目標,或者也許可以使用單獨的終端命令來完成。

+0

'mv unsorted_files/*。jpg jpgdirectory /'?移動所有分類文件後,您將剩下「雜項」文件。 –

回答

2

要在bash中自動執行mkdir和mv命令,可以將它放到'for'循環中,如下所示。

代碼:

#!/bin/bash 

unsorted_path="/path/to/unsorted/dir" 
output_path="/path/to/output/dirs" 
for type in $(cat filetypes.txt) 
do 
    mkdir -p ${output_path}/${type}directory 
    mv ${unsorted_path}/*.${type} ${output_path}/${type}directory/ 
done 

的「filetypes.txt」文件是文件類型,每行一個,如清單:

jpg 
gif 
docx 
png 
wav 
mid 
csv 

你也可以只硬編碼的文件類型,即

#!/bin/bash 

unsorted_path="/path/to/unsorted/dir" 
output_path="/path/to/output/dirs" 
for type in jpg gif docx png wav mid csv 
do 
    mkdir -p ${output_path}/${type}directory 
    mv ${unsorted_path}/*.${type} ${output_path}/${type}directory/ 
done 

希望這有助於!

+0

謝謝,我會放棄這一點。 –

+0

marcus filetypes.txt文件,是除了腳本之外還可以嵌套在腳本中的單獨的txt文件嗎? –

+0

是.'filetypes.txt'是一個單獨的文件。第二個代碼示例允許將文件類型硬編碼爲腳本(即''用於輸入jpg gif docx png wav mid csv ...' –

相關問題