计算目录中的所有文件,包括子目录文件

时间:2016-05-30 03:48:08

标签: bash shell unix sftp

以下是我的脚本,但在连接到sftp后它无法正常工作。 请帮我解决一下这个。

我没有收到任何错误。它没有进入循环。

#!/bin/bash
CURRENT=`pwd`
File_Path=/appinfprd/bi/info/Client/Scripts/Test/
cd $File_Path
sftp STREAM@abc.sxm.com
for D in *;
do 
  echo $D;
  File_count=`find $D -type f| wc -l;`
  echo $File_Path$D '|' $File_count  >> File_count.txt
done
exit

1 个答案:

答案 0 :(得分:0)

在将sftp连接到目标计算机本身之前,您将转到文件路径。

File_Path=/appinfprd/bi/info/Client/Scripts/Test/

那么你想在哪里实际计算文件?在源系统或目标?

如果要在远程计算机中运行一组命令并将结果存储在那里,请将这些命令存储到批处理文件中,如commands.batch,并运行如下:

sftp -b commands.batch STREAM@abc.sxm.com

对于使用ssh运行,因为它是执行上述命令的更好方法,将命令存储到文件script.sh中并运行如下。

ssh -o BatchMode=yes abc.sxm.com sh -s < "script.sh"