проверить удаленный файл, если каталог - PullRequest
0 голосов
/ 09 июня 2010
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

Мне нужно простое решение для проверки удаленного файла является каталог или файл? спасибо

Ответы [ 2 ]

0 голосов
/ 07 мая 2012

Это работает для меня на bash (Fedora):

ssh $REMOTEHOST [ -d /path/to/some/directory ]

или

ssh $REMOTEHOST [ -f /path/to/some/file ]

Статус выхода 0 или 1 будет отражать существующий / не существующий статускаталог / файл на удаленном хосте.

Я использую обмен ключами, чтобы избежать необходимости каждый раз предоставлять учетные данные, так что это легко можно записать в сценарии.Я использую это в цикле перед синхронизацией репозитория с несколькими подрывными операциями, чтобы узнать, нужно ли инициализировать новый репозиторий.

0 голосов
/ 09 июня 2010

Вам необходимо добавить галочки вокруг первого remsh:

isdir=`remsh $HOSTNAME "if [ -d $i ]; then echo dir; else echo file; fi"`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...