किसी फ़ाइल की सामग्री को क्लिपबोर्ड में उसकी सामग्री को प्रदर्शित किए बिना कॉपी करें


66

फ़ाइल की सामग्री को प्रदर्शित किए बिना UNIX में फ़ाइल की सामग्री की प्रतिलिपि कैसे करें। मैं सामग्री को देखने के लिए बिल्ली या vi नहीं करना चाहता।

मैं उन्हें क्लिपबोर्ड पर कॉपी करना चाहता हूं ताकि मैं इसे अपनी विंडोज़ नोटपैड पर वापस पेस्ट कर सकूं।

मैं एक्सेस प्रतिबंधों के कारण फ़ाइल को उस सर्वर से दूसरे में कॉपी नहीं कर सकता।


आप इसे खोले बिना किसी फ़ाइल की सामग्री तक नहीं पहुँच सकते ...
123

ठीक है, यदि ऐसा है तो बहुत बड़ी फ़ाइल की प्रतिलिपि बनाने का एक आसान तरीका है। मुझे 1000 लाइनें पसंद आईं।
वेब नैश

यदि आपकी फ़ाइल बड़ी है तो क्लिपबोर्ड वैसे भी विफल हो जाएगा। जब एक्सेस प्रतिबंध कहते हैं, कि आप फ़ाइल नहीं पढ़ सकते हैं, तो आप निश्चित रूप से खो गए हैं। यदि आप फ़ाइल को कॉपी नहीं कर सकते हैं क्योंकि आप उस फ़ाइल को नहीं लिख सकते हैं जिसे आपको स्वयं से पूछना चाहिए, यदि कोई अन्य गंतव्य है जिसे आप लिख सकते हैं।
इकराबे

बहुत बड़ा। 1000 लाइनें। एक चुनें।
123

2
एक विंडोज़ नोटपैड BTW क्या है?
स्टीफन चेज़लस

जवाबों:


77

X11

यदि X11 (पारंपरिक यूनिक्स या लिनक्स आधारित प्रणालियों पर सबसे आम जीयूआई) का उपयोग करते हुए, किसी फ़ाइल की सामग्री को X11 CLIPBOARD चयन में प्रदर्शित किए बिना कॉपी करने के लिए , आप xclipया xselउपयोगिता का उपयोग कर सकते हैं ।

xclip -sel c < file

या:

xsel -b < file

सामग्री fileको CLIPBOARD X11 चयन के रूप में संग्रहीत करने के लिए।

ध्यान दें कि इसे UTF-8 एन्कोडिंग का उपयोग करके संग्रहीत किया जाना चाहिए या अन्यथा चिपकाना ठीक से काम नहीं करेगा। यदि fileकिसी अन्य वर्ण सेट का उपयोग कर एन्कोड किया गया है, तो आपको पहले UTF-8 में परिवर्तित होना चाहिए, जैसे:

iconv -f latin1 -t utf8 | xclip -sel c

एक फ़ाइल के लिए लैटिन 1 / iso8859-1 में इनकोड किया गया ।

इसे CUT_BUFFER के रूप में संग्रहीत करने के लिए (जो अभी भी कुछ अनुप्रयोगों द्वारा क्वेर किए जाते हैं जैसे कि xtermजब कुछ CLIPBOARD या PRIMARY X चयन का दावा नहीं करता है और इसे चयन करने के लिए इसे चलाने के लिए एक प्रक्रिया की आवश्यकता नहीं है), हालांकि आप नहीं चाहेंगे या आजकल इसका उपयोग करने की आवश्यकता है:

xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"

(अनुगामी newline वर्ण हटाता है file)।

GNU स्क्रीन

GNU screenमें readbufफ़ाइल की सामग्री को अपने स्वयं के कॉपी-पेस्ट बफर (जिसे आप पेस्ट करते हैं ^A]) में डालने का आदेश है । इसलिए:

screen -X readbuf file

Apple OS / X

हालाँकि Apple OS / X X11 का उपयोग कर सकता है । यह डिफ़ॉल्ट रूप से तब तक नहीं होता है जब तक आप X11 एप्लिकेशन नहीं चलाते हैं। आप का उपयोग करने में सक्षम होंगे xclipया xselओएस / एक्स को ओएस / एक्स पेस्टबोर्ड बफ़र्स के साथ एक्स 11 क्लिपबोर्ड चयन को सिंक्रनाइज़ करना चाहिए, लेकिन यह केवल एक्स 11 सर्वर को शुरू करने के लिए थोड़ा बेकार होगा।

OS / X पर, आप pbcopyमनमानी सामग्री को पेस्टबोर्ड बफ़र्स में संग्रहीत करने के लिए कमांड का उपयोग कर सकते हैं :

pbcopy < file

(फ़ाइल के चरित्र एन्कोडिंग को लोकेल के होने की उम्मीद है)।

गोले

अधिकांश गोले का अपना कॉपी-पेस्ट बफ़र होता है। Emacs मोड में, कट और कॉपी ऑपरेशन्स एक स्टैक पर कॉपी / कट किए गए टेक्स्ट को स्टोर करते हैं, जिसे आप यॉक / पेस्ट करते हैं Ctrl-Y, और उसके साथ साइकिल चलाते हैंAlt+Y

zsh कटार / हत्या

में zsh, स्टैक को $killringसरणी में संग्रहीत किया जाता है और स्टैक के शीर्ष पर $CUTBUFFERहालांकि वे चर केवल Zsh लाइन संपादक (zle) विगेट्स से उपलब्ध हैं और कुछ विशेष विजेट उन में हेरफेर करने के लिए पसंदीदा तरीका है।

क्योंकि वे केवल ZLE के माध्यम से उपलब्ध हैं, इसे कमांड के साथ करना थोड़ा जटिल है:

zmodload zsh/mapfile
zle-line-init() {
  if [ -n "$FILE_TO_COPY" ]; then
    zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
    unset FILE_TO_COPY
  fi
}
zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A       

zle-line-initविशेष विजेट प्रत्येक नए कमांड प्रॉम्प्ट के शुरू में एक बार निष्पादित कर रहा है। इसका मतलब यह है कि फ़ाइल केवल अगले प्रॉम्प्ट पर कॉपी की जाएगी। उदाहरण के लिए, यदि आप करते हैं:

file-copy file; sleep 2

फ़ाइल केवल उन 2 सेकंड के बाद कॉपी की जाएगी।


3
मैं इस त्रुटि का सामना कर रहा हूँ:Error: Can't open display: (null)
Marcelo Filho

फेडोरा 7 में यहाँ भी यही समस्या है
माइकल पाचेको

@MarceloFilho, xclipऔर xselX11 उपयोगिताओं हैं, वे X11 चयनों में हेरफेर करते हैं, इसलिए केवल X11 वातावरण में उपयोग किया जा सकता है जहां $DISPLAYसेट किया गया है।
स्टीफन चेज़लस

2

शायद आप यह पूछना चाहते थे । लेकिन आप जो भी फ़ाइल पढ़ना चाहते हैं, उसे कुछ सिस्टम कॉल द्वारा खोला जाना चाहिए। यदि आपके पास किसी फ़ाइल तक पहुंच नहीं है, तो आप इसे नहीं पढ़ सकते हैं। यह प्रतिबंधित पहुंच का विचार है।


तो आपकी वास्तविक समस्या क्या है? यदि आप पढ़ सकते हैं, लेकिन आप कॉपी नहीं कर सकते हैं, तो आप लिखने में सक्षम नहीं हो सकते हैं। लेकिन जब आप कॉपी करना चाहते हैं तो आपको कहीं डेटा लिखना होगा।
.रबबे जुं 24'15

धन्यवाद!!! आपने मेरी जान बचाई)
Alena Kastsiukavets

0

X11 का उपयोग करना:

xclip -o > file

यदि आप फ़ाइल को पढ़ सकते हैं तो पहुँच समस्या गंतव्य सर्वर के बारे में है।

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