HOSTNAME=$1
#missing files will be created by chk_dir
for i in `cat filesordirectorieslist_of_remoteserver`
do
isdir=remsh $HOSTNAME "if [ -d $i ]; then echo dir; else echo file; fi"
if [ $isdir -eq "dir" ]
then
remsh $HOSTNAME "ls -d $i | cpio -o" | cpio -id
else
remsh $HOSTNAME "ls | cpio -o" | cpio -id
fi
done
我需要简单的解决方案来检查远程文件是目录还是文件? 感谢
答案 0 :(得分:0)
您需要在第一个remsh
周围添加反引号:
isdir=`remsh $HOSTNAME "if [ -d $i ]; then echo dir; else echo file; fi"`
答案 1 :(得分:0)
这在bash(Fedora)上对我有用:
ssh $REMOTEHOST [ -d /path/to/some/directory ]
或
ssh $REMOTEHOST [ -f /path/to/some/file ]
退出状态0或1将反映远程主机上目录/文件的现有/不存在状态。
我使用密钥交换来避免每次都需要提供凭据,因此可以轻松编写脚本。我在进行多个subversion存储库同步之前在循环中使用它,以了解是否需要初始化新的存储库。