क्या एक दूरस्थ "ls" करने का एक तरीका है जैसे "scp" एक दूरस्थ प्रतिलिपि करता है?


55

क्या एक रिमोट "ls" करने का एक तरीका है जैसे "scp" एक मानक linux शेल में एक रिमोट कॉपी करता है?


मैं देख सकता हूँ कि ऐसा करना अच्छा होगा, लेकिन सिर्फ SSH में और ls क्यों नहीं?
SpacemanSpiff 12

@SpacemanSpiff - तो आप इसे स्क्रिप्ट कर सकते हैं। मुझे इस पेज पर यह पसंद आया।
wobbily_col 13

जवाबों:


75

आप हमेशा ऐसा कर सकते हैं:

ssh user@host ls -l /some/directory

होस्ट के लिए SSH, ls चलाएंगे, आउटपुट को आपके पास डंप करेंगे और तुरंत डिस्कनेक्ट कर देंगे।


2
... यदि आपके पास वास्तविक शेल एक्सेस है। कुछ प्रणालियों में एक विशेष शेल होता है जो केवल निश्चित scpऔर rsyncकॉल को स्वीकार करेगा , शायद sftpऔर भी।
ग्लॉगल

आप इसे कैसे कहेंगे, "rls"?
वाल्टरस द कैट

2
@AlrustheCat alias rls="ssh user@host ls -l"अपने शेल को पुनरारंभ करें और rls /some/directoryकाम करना चाहिए।
चिशकु

इसके साथ एकमात्र समस्या यह है कि फ़ाइल को त्रुटि कोड नहीं मिला है, जब ऐसा करने का मेरा कारण ठीक है कि मैं एलएस को क्यों कॉल करना चाहता हूं।
स्टीव कोहेन

@SteveCohen का अनुसरण नहीं कर रहा है। क्या आप दूरस्थ ls से त्रुटि कोड चाहते हैं? यदि हां, तो $? आपके द्वारा कमांड निष्पादित करने के बाद इसे शामिल करना सही है। (जैसे यह 2 मिलता है अगर मैं इसे [स्थानीय रूप से या दूरस्थ रूप से] एक फ़ाइल पर पाया जाता है जो नहीं मिलता है)
कोरी एस।

11

निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करने के लिए:

rsync host.name.com:directory/path/'*'

निर्देशिका / पाथ-पर्ल जैसी किसी चीज़ के लिए

rsync -r host.name.com:directory/path

यदि होस्ट पर rsync स्थापित नहीं है, तो आपको कुछ ऐसा मिलता है bash: rsync: command not found। मुझे लगता है कि यह पृष्ठभूमि में SSH का उपयोग कर रहा है इसका मतलब है?
mwfearnley

ध्यान दें कि प्रारूप समान है ls -l। मेरे सिस्टम पर, ऐसा नहीं लगता है कि फाइलों को सूचीबद्ध करने का विकल्प है।
जोनाथन

6

इस प्रश्न के लिए Google के माध्यम से आने वाले सभी के लिए, क्योंकि वे दूरस्थ फ़ाइलों को सूचीबद्ध करने का एक तरीका ढूंढ रहे हैं, लेकिन ssh (बैकअप सर्वरों के लिए सामान्य मामला) के माध्यम से दूरस्थ सर्वर तक नहीं पहुंच सकते हैं आप 'sftp' का उपयोग कर सकते हैं।

उदाहरण:

sftp username@hostname.xyz
ls
cd somedir
exit

एक विशिष्ट दूरस्थ निर्देशिका में एक इंटरैक्टिव सत्र शुरू करें:

sftp [user@]host[:dir]

3

हाँ। SSH और करें ls:

ssh host ls /path

आप इसे आसानी से अधिक लचीला होने के लिए स्क्रिप्ट कर सकते हैं, या होस्ट का उपयोग कर सकते हैं: पथ सिंटैक्स scpका उपयोग करता है।


1

मुझे लगता है कि इसका सबसे अधिक उपयोग ls परिणाम, सभी अनुमतियों और तारीखों और इस तरह की फ़ाइलों की एक सरल सूची प्राप्त करने के लिए है, और इसे स्थानीय फ़ाइल में रखें।

{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt

आप उद्धरणों के भीतर अपनी इच्छानुसार कुछ भी चला सकते हैं। आपकी स्थानीय पाठ फ़ाइल में सभी आउटपुट समाप्त हो जाते हैं। या यदि आप सर्वर पर एक बड़ा गंदा स्क्रिप्ट चलाना चाहते हैं और इसके सभी आउटपुट, यहां तक ​​कि त्रुटियों को भी पकड़ सकते हैं:

{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err

1
दूसरी कोड लाइन में, { }आवश्यक नहीं हैं।
glglgl
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.