क्या खोजक में कड़ी बनाने का कोई तरीका है?


8

क्या खोजक में कड़ी बनाने का कोई तरीका है?

टर्मिनल में एक कड़ी के साथ बनाया जाएगा:

ln /path/to/file /path/to/newpath

जबकि कमांड और ऑप्शन को होल्ड करके या एक सिम्लिंक / उर्फ ​​किया जा सकता है

ln -s /path/to/file /path/to/newpath

(हालांकि स्पष्ट रूप से 'उर्फ' और 'ln' के व्यवहार अलग हैं )

जवाबों:


7

आप इस तरह एक ऑटोमेटर सेवा बना सकते हैं:

यहां छवि विवरण दर्ज करें

यह चयनित फ़ाइलों को ले जाता है और उन्हें उस निर्देशिका में कड़ी कड़ी बनाता है जहां वे मौजूद हैं। फिर आप लिंक को उस स्थान पर खींच और छोड़ सकते हैं जहाँ आप उन्हें चाहते हैं।

यह उनके नाम के रिक्त स्थान वाली फ़ाइलों के लिए काम करेगा, लेकिन उनके नाम के उद्धरण चिह्नों वाली फ़ाइलों के लिए नहीं।

आप इसे खोजक » सेवा मेनू, संदर्भ मेनू से एक्सेस कर सकते हैं, और आप इसे Lउपनाम (शायद L) के शॉर्टकट के अनुरूप कीबोर्ड शॉर्टकट असाइन कर सकते हैं ।


1
क्या एक ऐसा तरीका है जो एक ऐसी कार्रवाई करता है जो एक फ़ोल्डर से दूसरे में ड्रैग / ड्रॉप करते समय विकल्प कुंजी की तरह कुछ पकड़कर रखता है जो गंतव्य फ़ोल्डर प्रदान करता है ताकि हार्ड लिंक नई निर्देशिका में सीधे बनाया जा सके?
माइकल

@ मिचेल जो शायद अपने स्वयं के प्रश्न के रूप में सर्वश्रेष्ठ करेंगे और इस उत्तर पर कोई टिप्पणी नहीं करेंगे।
डैनियल

1
एक bashपरिप्रेक्ष्य से जिसे नाम में उद्धरण चिह्नों के साथ फाइलों पर काम करना चाहिए । क्या कुछ ऑटोमेटर-संबंधित कारण यह नहीं है? (क्या आपने परीक्षण किया कि यह वास्तव में उद्धरण चिह्नों के साथ काम नहीं करता है?)
वाइल्डकार्ड

संबंधित, यूनिक्स एंड लिनक्स स्टैक एक्सचेंज से: एक लूप में $ 1 $ 2 ... जैसे तर्कों का उपयोग कैसे करें? (आप उपयोग कर सकते हैं कई सरल वाक्यविन्यास हैं।)
वाइल्डकार्ड

@ डैनियल: मैंने "माय फाइल हार्डलिंकटैक्स" प्राप्त करने के लिए "माइ फाइल.टेक्स्ट हार्डलिंक" के बजाय एक परिष्कृत कोड के साथ आपके समाधान को बढ़ाया, जो कि फाइल टाइप एसोसिएशन के लिए बाधा डालता है। कृपया सहकर्मी इसकी समीक्षा करें धन्यवाद।
porg

2

Finder.app में ऐसा करने का कोई तरीका नहीं है। हालाँकि, यदि आपका लक्ष्य सिर्फ टर्मिनल में टाइप करने से बचने के लिए है। तो आप अपने लिए कमांड बनाने के लिए वर्कफ़्लो बनाने के लिए Automator.app का उपयोग कर सकते हैं।


2

मैं वास्तव में एक्सटेंशन के साथ नाम बदलने में लिंक शब्द को संरक्षित करना चाहता था अन्यथा खोजकर्ता फ़िलाटाइप को नहीं पहचानता।

इसलिए मैंने डैनियल के उत्तर का उपयोग किया (इसके लिए धन्यवाद) और इसे थोड़ा बदल दिया

for f in "$@"
 do  
  dir=$(dirname "$f")
  filename=$(basename "$f")
  extension=$([[ "$filename" = *.* ]] && echo ".${filename##*.}" || echo '')
  filename="${filename%.*}"
  ln "$f" "${dir}/$filename Hardlink$extension"
done

संपादित करें: जो मुझे लगता है कि बेहतर एक्सटेंशन हैंडलिंग कोड है - कोई एक्सटेंशन मौजूद नहीं होने पर रिक्त होना चाहिए। क्षमा करें, मैं स्क्रिप्ट कोडिंग में अच्छा नहीं हूं, इसलिए कृपया अपनी आवश्यकताओं के अनुसार कोई भी सुधार साझा करें।


काफी अच्छा। बस एक चेतावनी: यदि आपके पास कोई फ़ाइल है जिसका कोई विस्तार नहीं है, तो आपको कुछ वास्तव में आश्चर्यजनक परिणाम मिलेंगे! (और अगर किसी एक निर्देशिका में नाम की अवधि है, तो आश्चर्य एक अलग रूप में प्रकट होगा।)
वाइल्डकार्ड

1

हां, अप्रत्यक्ष रूप से।

स्वचालक आप ऐसी सेवाएं बनाते हैं जो किसी भी शेल स्क्रिप्ट को चलाती हैं और आपको हार्ड लिंक के लिए गंतव्य के लिए एक रास्ता भी पूछ सकती हैं (क्योंकि यह मूल रूप में उसी स्थान पर नहीं होगा)। मुझे लगता है कि आप लिंक स्थान को डेस्कटॉप की तरह भी डिफॉल्ट कर सकते हैं।

बस प्रवेश करने के लिए एक डायलॉग पॉप अप करने के लिए एक कदम जोड़ें या अन्यथा गंतव्य चुनें और इसे अपने lnकमांड में पास करें ।


1

डैनियल द्वारा प्रदान किया गया अच्छा समाधान, लेकिन मैं सुझाव देता हूं कि वह नीचे दिए गए फ़ाइल प्रकार को संरक्षित करता है।

for f in "$@"
do  
  ln "$f" "Plink-$(basename "$f")"
done

"फ़ाइल प्रकार के लिए विनाशकारी नहीं" का क्या अर्थ है?
user151019

मैंने पाटर का अनुसरण किया जो कि फाइंडर के "अलियास" कमांड का उपयोग करता है। बेशक, आप नामकरण सम्मेलन को बदल सकते हैं, हालांकि आप फिट दिखते हैं।
डैनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.