我有一项任务是在for循环中查找文件,不会更改5分钟,可能有1个子文件夹,并将其自动ftp到远程位置。 要做到这一点,find命令对我来说很好。 但我需要剥离基本文件夹和文件名以找到可能的子文件夹并在ncftpput命令中使用它。
我从这开始:
HOST=1.2.3.4
USER=foo
PASS=bar
LDIR="/storage/external/ftp/foo/bar"
for FOUND in `find ${LDIR}/ -maxdepth 2 -type f -mmin +1 `; do
RDIR="$FOUND | cut -d / -f 6"
echo "LDIR = $LDIR"
echo "RDIR = $RDIR"
echo "FOUND = $FOUND"
ncftpput -u $USER -p $PASS -R -DD $HOST /$RDIR/ $FOUND
echo " "
done
但是RDIR =“$ FOUND | cut -d / -f 5”没有返回正确的值。空白或语法错误,或路径+ | cut -d / -f 6。 还尝试了其他刻度,反引号,$()等。
尝试:
RDIR= "$FOUND | cut -d / -f 6"
RDIR= '$FOUND | cut -d / -f 6'
RDIR= `$FOUND | cut -d / -f 6`
RDIR= $FOUND | cut -d / -f 6
RDIR= $($FOUND | cut -d / -f 6)
RDIR= "$($FOUND | cut -d / -f 6)"
RDIR= '$($FOUND | cut -d / -f 6)'
RDIR= `$($FOUND | cut -d / -f 6)`
比我放弃了。
有人能指出我正确的方向吗?
感谢。
答案 0 :(得分:0)
这可能是一个开始:
RDIR=$(echo "$FOUND" | cut -d / -f 6)
可能(您应该检查),应该-f 7
知道子文件夹。
而且,在find命令中不应该是-mmin +5
?