কেন কিছু জিএনইউ কোরিটিলস কমান্ডের -T/--no-target-directory
বিকল্প রয়েছে? দেখে মনে হচ্ছে এটি everything .
তিহ্যবাহী ইউনিক্স ডিরেক্টরি শ্রেণিবিন্যাসের (সেলফ ডট) শব্দার্থক ব্যবহার করে এটি করা যায় ।
বিবেচনা করা:
cp -rT /this/source dir
-T
বিকল্প একটি তৈরি করা থেকে কপি বাধা দেয় dir/source
সাব। বরং এর /this/source
সাথে চিহ্নিত করা হয়েছে dir
এবং বিষয়বস্তুগুলি গাছের মধ্যে ম্যাপ করা হয়েছে। সুতরাং উদাহরণস্বরূপ /this/source/foo.c
যায় dir/foo.c
এবং না, বরং dir/source/foo.c
।
তবে -T
বিকল্পটি ব্যবহার না করে এটি সহজেই সম্পাদন করা যায় :
cp -r /this/source/. dir # Probably worked fine since dawn of Unix?
শব্দার্থকভাবে, পিছনের ডট উপাদানটি শিশু হিসাবে অনুলিপি করা হয় dir
, তবে অবশ্যই "শিশু" ইতিমধ্যে বিদ্যমান (সুতরাং এটি তৈরি করতে হবে না) এবং আসলে এটি dir
নিজেই, তাই প্রভাবটি এটির /this/path
সাথে চিহ্নিত করা হয় dir
।
বর্তমান ডিরেক্টরি যদি লক্ষ্য হয় তবে এটি কাজ করে:
cp -r /this/tree/node/. . # node's children go to current dir
এমন কিছু আছে যা আপনি কেবল-T
তার সাথে করতে পারেন যা এর অস্তিত্বকে যুক্তিযুক্ত করতে পারে? (ডট ডিরেক্টরি প্রয়োগ করে না এমন অপারেটিং সিস্টেমের জন্য সমর্থন ছাড়াও ডকুমেন্টেশনে উল্লিখিত যুক্তি নয় ale)
উপরের ডট ট্রিক কী জিএনইউ তথ্য নথিভুক্তিতে বর্ণিত একই বর্ণের পরিস্থিতি সমাধান করে না -T
?
.
কৌতুক করে যখন একটি ফাইল অনুলিপি, ঠিক একই সময়ে তার basename না পুনঃনামকরনের যখন কাজ!cp /path/to/file /target/dir/.
যদি/target/dir/file
বিদ্যমান থাকে এবং ডিরেক্টরি হয় তবে আপনি একই ডায়াগোনস্টিক পান! তবে আপনি এটি দেখিয়েছেন যে-T
জাতি পদ ছাড়াই এটি এক ধাপে কী করা যায় না, বিনা শর্ত ছাড়াই: একটি ফাইল অনুলিপি করুন এবং নামটি সাব-ডিরেক্টরিতে না ফেলেই তার নাম পরিবর্তন করুন।