GNU "स्थापित" -d झंडा - यह कैसे काम करता है?


26

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

मैनपेज में, यह कहता है:

SYNOPSIS

   install [OPTION]... [-T] SOURCE DEST
   install [OPTION]... SOURCE... DIRECTORY
   install [OPTION]... -t DIRECTORY SOURCE...
   install [OPTION]... -d DIRECTORY...

   -d, --directory
          treat all arguments as directory names; create all components of
          the specified directories

ठीक है, यह लगता है कि मुझे क्या चाहिए ... लेकिन झंडे का कोई मतलब नहीं है। आप गंतव्य निर्देशिका को कैसे स्थापित करें?

मैंने अपनी स्थानीय हार्ड डिस्क पर एक मनमाना निर्देशिका संरचना बनाकर एक मूल परीक्षण करने की कोशिश की:

~>tree test
test
├── a
│   └── b
│       └── c
│           └── e.txt
└── d

4 directories, 1 file

और फिर जो चल रहा install -dथा उसे देखते हुए:

~>install -d test test2
~>tree test2
test2

0 directories, 0 files

कुछ नहीं हुआ!

क्या कोई मुझे सही दिशा दिखा सकता है? Googling "ग्नू इंस्टॉल -d फ्लैग" मुझे ज्यादा नहीं ला रहा है।

जवाबों:


18

ऐसा लगता है कि install -Dकमांड वास्तव में वही है जो मैं चाहता हूं।

मैनपेज:

-DEST को छोड़कर बाकी सभी प्रमुख घटक बनाएं, फिर SOESTCE को DEST पर कॉपी करें

महान काम करता है, सिवाय आपको हर फ़ाइल को व्यक्तिगत रूप से निर्दिष्ट करना होगा।


8
मैं अंत तक उत्साहित था, "आपको प्रत्येक फ़ाइल को व्यक्तिगत रूप से निर्दिष्ट करना होगा"। मुझे लगता है मैं के साथ रहना होगाcp -r
dtmland

7
क्या इनस्टॉल कमांड के बराबर है cp -r?
अलेक्जेंडर

14

install -dबस निर्देशिका बनाने के लिए उपयोग किया जाता है। आपने इसे दो निर्देशिकाएँ बनाने के लिए कहा था, testऔर test2testपहले से ही अस्तित्व में है, इसलिए इसे बनाने के लिए सभी की जरूरत थी test2। मुझे नहीं लगता कि installपूरी निर्देशिका पेड़ों की नकल का समर्थन करता है; यह आम तौर पर फ़ाइलों पर उपयोग किया जाता है। आपको शायद उपयोग करने की आवश्यकता हैcp


2
मूल रूप से, install -dके रूप में ही है mkdir, सिवाय इसके कि आप एक बार में सभी मोड, मालिक, SELinux संदर्भ, और समूह निर्दिष्ट कर सकते हैं कि।
ZiggyTheHamster

0

आमतौर पर आप जो चाहते हैं, वह अपने स्वयं को दोहराए बिना, सही फ़ोल्डर में फ़ाइलों को स्थापित करना है। आप अपनी स्थापना स्क्रिप्ट को अधिक DRY रखने में सहायता के लिए खोज और इंस्टॉल का उपयोग कर सकते हैं

find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.