2016-02-13 57 views
0

我目前有一個腳本(連接到GUI),它會轉到指定的文件夾,獲取文件並將它放在其他位置。工作得很好。修改shell腳本以查看目錄的動態列表

# set up log in info. 
HOST=$1 
USER=$2 
PASS=$3 

#local file info 
FROMDIR=$4 
FROMFILE=$5 

#remote file info 
TODIR=$6 
TOFILE=$7 

#sent dir 
SENTDIR=$FROMDIR/../sent 

#log dir 
DIRNAME=`/usr/bin/dirname $0` 
LOGDIR=$DIRNAME/../log 
LOGFILE=$LOGDIR/$5.log 


##################################################### 
# 
# move the file to the pickup folder 
# 
##################################################### 

if ! test -d $LOGDIR 
then 
    /usr/bin/mkdir $LOGDIR 
fi 



if `/usr/bin/cp "$FROMDIR/$FROMFILE" "$TODIR/$TOFILE"` 
then 
    echo `date` >> $LOGFILE 
    echo "Successfully copied file from $FROMDIR/$FROMFILE to $TODIR/$TOFILE" >> $LOGFILE 
    exit 10; 
else 
    echo `date` >> $LOGFILE.failed 
    echo "Colud not copy file from $FROMDIR/$FROMFILE to $TODIR/$TOFILE" >> $LOGFILE.failed 
    exit 1; 
fi 

但是,我現在想改變它來通過一個子目錄列表並將文件轉移到一個位置。

注: 對於此下文中,以此作爲參考:

/foo/sing/song 
     /tommy 
       /chicken 
        /in 
        /out 
       /burger 
        /in 
        /out 
       etc... 

的下/撬子目錄會不斷增長。我需要進入每個文件夾的「/ in」,並將這些文件轉到/ foo/sing/song(這對我的腳本仍然可以正常工作)。

我很感激您可以提供的任何幫助;我對shell腳本相當陌生,所以這個字段中的通配符和循環仍然高於我。

謝謝!

+1

據我所知,前3個參數是無用的(不在腳本中使用)對嗎? (主機,用戶和通行證) – fanton

+0

他們有時使用...但在這種情況下,沒有。但是,這給出了在GUI中輸入FTP信息的選項,以便我可以登錄到FTP文件夾並刪除文件。 – FrankCapone

+0

儘管如此,腳本並未使用這些參數。 – fanton

回答

1

你可以做,在一個班輪:

cp -r /foo/sing/song/tommy/*/in/* /foo/sing/song 

通配符像*是很容易理解的:它意味着什麼-r是可選的,只有在in文件夾中有其他目錄時才需要。