ডিরেক্টরিটি তৈরি করে কীভাবে আমি একটি নতুন স্থানে একটি ফাইল অনুলিপি করতে পারি


12

আমি cpঅন্য ডিরেক্টরিতে একটি ফাইল চাই কিন্তু সেই ডিরেক্টরিটি এখনও বিদ্যমান নেই।

সুতরাং আমি করব:

mkdir /new_place
cp the_file /new_place

আমি এই এক করতে পারি?
আমি এমন কিছু কল্পনা করেছিলাম যে cp the_file -m /new_place"এম" যদি "মীরের তৈরি হয় যা বিদ্যমান নেই" এর পক্ষে দাঁড়িয়ে থাকে

এটি কি scp, rsync বা অন্য কোনও অনুলিপি ইউটিলিটি ব্যবহার করার সুযোগ হবে?

উত্তর:


17

সঙ্গে --parentsআপনি গন্তব্যে উৎস থেকে ডিরেক্টরি পুনঃ পারবেন না। উদাহরণ স্বরূপ:

cp --parents ~/Downloads/test.txt ~/Desktop/

উপ-ডিরেক্টরিগুলি তৈরি করবে ~/Desktop/home/desgua/Downloadsএবং তারপরে test.txtএটি অনুলিপি করবে; এবং

cp --parents Downloads/test.txt ~/Desktop/

তৈরি করবে ~/Desktop/Downloads


5

আপনি নিম্নলিখিত কমান্ড দিয়ে এটি করতে পারেন

# rsync --recursive the_file /path/to/your/dir/that/doesn't/exists/

দ্রষ্টব্য: পথের শেষে "/" ব্যবহার:

  • উত্স শেষে "/" ব্যবহার করার সময়, rsync শেষ ফোল্ডারের সামগ্রীটি অনুলিপি করবে। উত্সের শেষে "/" ব্যবহার না করে, আরএসসিএনসি শেষ ফোল্ডার এবং ফোল্ডারের সামগ্রীটি অনুলিপি করবে।

  • গন্তব্য শেষে "/" ব্যবহার করার সময়, rsync শেষ ফোল্ডারের ভিতরে ডেটা পেস্ট করবে। গন্তব্য শেষে "/" ব্যবহার না করে, আরএসসিএনসি শেষ গন্তব্য ফোল্ডারের নাম সহ একটি ফোল্ডার তৈরি করবে এবং সেই ফোল্ডারের অভ্যন্তরে ডেটা আটকে দেবে।


আপনি যদি চান আপনার নতুন ডিরেক্টরি পাথের শেষে the_fileএকটি যুক্ত করতে হবে /
এমফিংক

1

দেশগুয়ার উত্তরটি যথাযথ এবং সহজ উপায় তবে আপনার যদি একটি প্রতিরক্ষামূলক উপায় প্রয়োজন? পসিক্স পতাকা cpব্যতীত সংজ্ঞা দেয় --parent, সুতরাং এটি সমস্ত সিস্টেমে কাজ করে না।

পাইথনে এটি ইনস্টল করা থাকলে একটি বিকল্প হ'ল:

#!/usr/bin/env python3
from os import makedirs
from os.path import exists,basename
from shutil import copyfile
from sys import argv

if len(argv) < 3:
   print('Not enough args',file=stderr)
   exit(1)

filename = basename(argv[2])
dirs = argv[2].replace(filename,'')
makedirs(dirs)
copyfile(argv[1],argv[2])

এটি তাই হিসাবে কাজ করে:

$ ./mkdircp.py /etc/passwd $HOME/foodir/bardir/passwd.copy
$ stat --printf "%F\n" $HOME/foodir/bardir/passwd.copy
regular file
$ head -n 1 $HOME/foodir/bardir/passwd.copy
root:x:0:0:root:/root:/bin/bash

0

আপনি ব্যবহার করে সহজেই দুটি কমান্ড টাইপ করতে পারেন; এই ক্ষেত্রে:

mkdir folder; cp file.html folder

এবং এটি কাজ করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.