2017-03-03 246 views
-1

正是我想要實現的比標題建議更復雜,但我想保持它合理的短。我試圖做以下事情; (我對bash還很陌生)將文件從一個目錄複製到另一個目錄

「獲取名稱作爲參數給出的圖像目錄,例如目錄XXX,並生成另一個目錄,其名稱作爲另一個參數給出,該目錄包含這些圖像的副本,但是大小的一半(線性維度)。「

我試圖用下面的腳本來做到這一點。

#!/bin/bash 

if [ "$1" != "" ]; then  
    orgdir$1 
fi 
if [ "$2" != "" ]; then  
    cpydir=$2  
fi  
find "${orgdir}" | while read -r file 
do  
    filesize=$(wc -c <"$orgdir$file") 
    dd if=$orgdir of=$cpydir bs=$(($filesize/2)) 
done 

在終端運行./script.sh ./Test ./TestMove我得到以下錯誤。

line 11 ./Test./Test: No such file or directory. 

我已經試過剛開$文件的WC -c但說廁所需要的目錄作爲標準輸入

和;

line 12 ""/2: syntax error: operand expected (error token is """/2") 

大概是因爲文件大小沒有被賦予正確的值嗎?

我也不確定使用dd複製文件,一半大小是最好的方法,但我無法找到任何其他人。

+1

複製的圖像文件的一半的字節可能不會產生有效的圖像。 – chepner

+0

是的,當我第一次閱讀任務時,我在想。我不確定我是否想要複製它的一半或壓縮它是誠實的。後者可能嗎? – Chaz

+1

如果他的字面意思是「將300x300圖像轉換爲150x150圖像」,那麼您需要使用能夠理解文件格式的程序。 – chepner

回答

1

你可以做到這一點從它安裝在大多數Linux發行版的ImageMagick的套房一個命令:

cd "$1" && mogrify -path "$2" -resize 50% *.jpg 
相關問題