SFTP: retourne le nombre de fichiers dans un répertoire distant?
J'ai envoyé un lot de fichiers vers un serveur distant via le protocole SFTP. Si il s'agissait d'un répertoire local je pourrais faire quelque chose comme ceci ls -l | wc -l
pour obtenir le nombre total de fichiers. Cependant, avec SFTP, j'obtiens une erreur Can't ls: "/|" not found
.
OriginalL'auteur John | 2014-08-20
Vous devez vous connecter pour publier un commentaire.
Si vous voulez compter les fichiers dans un répertoire du chemin d'accès au répertoire doit être mis après la commande ls-l de la commande comme
OriginalL'auteur Cyrus
Utiliser un fichier de commandes pour exécuter des commandes à distance et d'obtenir les données de retour au travail dans le bash:
Faire de votre fichier batch appelé
mybatch.txt
avec ces commandes sftp:Le sauver et lui donner 777 autorisations.
Puis exécutez-le comme ceci:
Il vous demandera le mot de passe, entrez-le.
Alors vous obtenez la sortie d'un dumping pour bash terminal. De sorte que vous pouvez tuyau à
wc -l
comme ceci:La 8842 est le nombre de lignes retournées par
ls -l
dans ce répertoire.Au lieu de tuyauterie pour wc, vous pourriez faire un dump d'un fichier pour analyse afin de déterminer le nombre de fichiers/dossiers.
chmod 777
est faux et problème de sécurité. Il n'y a pas d'univers dans lequel il est logique d'accorder utilisateurs inconnus accès en écriture à un script que vous vous apprêtez à exécuter. Vous êtes probablement à la recherche pour 755, bien que dans ce cas précis, il ne devrait pas être nécessaire de jouer avec les autorisations à tous (ou même l'utilisation d'un fichier physique à tous vraiment, en fait). À votre niveau de réputation, je voudrais vraiment s'attendre à mieux.OriginalL'auteur Eric Leschinski
Je voudrais utiliser sftp fichier de commandes.
Créez un fichier appelé fichier batch et entrez "ls-l".
Ensuite, exécutez
OriginalL'auteur pedram bashiri
La façon la plus simple que j'ai trouvé est d'utiliser le lftp client qui prend en charge une coquille de la syntaxe de transfert de la sortie de ftp à distance commandes à des processus locaux.
Par exemple en utilisant le caractère":
Cela fera lftp frayer un local
wc -l
et de lui donner la sortie de la télécommandels -l
commande ftp sur son entrée standard.Shell redirection syntaxe est également pris en charge et écrire directement à des fichiers locaux:
Donc un fichier nommé
list.txt
contenant le fichier distant d'inscription sera créé dans le dossier courant sur la machine locale. Utilisation>>
à ajouter à la place.Fonctionne parfaitement pour moi.
OriginalL'auteur Alex