裡面是利用 shell script 去呼叫 Mac OS X 中的底下幾個指令來達成按日期歸檔的:
- 「ls -1」:列出目錄中所有的檔案檔名。
- 「mdls」:列出檔案的 metadata contents。
- 「grep CreationDate」:只顯示帶有「CreationDate」的那行資料。
- 「awk '{print $3}'」:以空白當分隔符號,取出第三個欄位的資料(年月日)。
- 「export date=」:將找出的日期設為「date」的環境變數
以此來判斷日期的目錄是否存在,已存在就執行「cp」的指令複製檔案,不存在則先利用「mkdir」指令來建立目錄後,再執行檔案複製。
因為我已經將救回的檔案備份到另一顆隨身碟中了,所以在備份目錄中的操作,將原網頁中的指令改用「mv」指令,也就是用搬移來取代複製。
另外,此次救援的主要對象是照片和影片檔案,所以在列出檔案清單的「ls」指令後面加上了可能的副檔名「*.jpg *.nef *.mp4 *.mpg *.avi *.mov」來過濾,只搬移那些副檔名的檔案,其它的都不處理。
底下是依日期分目錄歸檔的 shell script :
#!/bin/bash
for image in `ls -1 *.jpg *.nef *.mp4 *.mpg *.avi *.mov`; do export date=`mdls $image | grep CreationDate | awk '{print $3}'`;
if [ -d ./$date/ ]
then
mv $image ./$date/
else
mkdir ./$date/ && mv $image ./$date/
fi; done
exit
參考文章:
沒有留言:
張貼留言