স্ক্যাপ কপি লুকানো ফাইলগুলি কীভাবে তৈরি করবেন?


63

আমি প্রায়শই এসসিপি ব্যবহার করি চারপাশের ফাইলগুলি অনুলিপি করতে - বিশেষত ওয়েব সম্পর্কিত ফাইলগুলি। সমস্যাটি হ'ল আমি যখনই এটি করি তখন লুকানো ফাইলগুলি (যেমন, .htaccess) অনুলিপি করার জন্য আমার আদেশটি পাই না।

আমি সাধারণত:

scp -rp src/ user@server:dest/

এটি লুকানো ফাইলগুলি অনুলিপি করে না। আমি এটিকে আবার প্রার্থনা করতে চাই না (যেমন কিছু করে scp -rp src/.* ...- এবং এটি যেভাবেই অদ্ভুত .এবং ..জড়িত।

আমি scp"অন্তর্ভুক্ত লুকানো ফাইলগুলি" সম্পর্কে ম্যান পৃষ্ঠায় কিছুই দেখিনি ।

আমি কীভাবে এটি সম্পাদন করতে পারি?


আমি ধরে নিলাম যে src/.*কপিগুলিও src/..(পিতামত্তা ডিরেক্টরি) ঠিক আছে?
কেন শার্প

উত্তর:


67

এটি একেবারে লুকানো ফাইলের সাথে মেলে। উত্সটির / শেষে বলা আছে "এই ডিরেক্টরিতে প্রতিটি ফাইল"। তবুও, পরীক্ষা এবং গবেষণা আপনাকে বহন করে। এটি নির্বোধ আচরণ।

" উত্তর " হ'ল উত্সটির শেষে একটি বিন্দু যুক্ত করা:

scp -rp src/. user@server:dest/

বাস্তব উত্তর rsync ব্যবহার করা হয়।


দুর্দান্ত কৌশল আমি এটি এখনও বুঝতে পারি নি।
সিস্টামস

21
rsync -avz -e ssh - প্রগ্রেস এসসিআর / ব্যবহারকারী @ সার্ভার:
গন্তব্য

2
আমি সেই আচরণটির পুনরুত্পাদন করতে পারি না। scp -r source/ host:source2কপি ডট ফাইল। 2007 থেকে ওপেনএসএসএইচ 5.1-এ কাজ করে
মিকেল

3
নোট করুন যে .সুরক্ষা সমস্যার কারণে শেষে যুক্ত করা আর (2019) কাজ করে না। এই এখানে ব্যাখ্যা করা হয় superuser.com/questions/1403473/scp-error-unexpected-filename
Stéphane

25

আপনি rsync চেষ্টা করতে পারেন। এটি এই কাজের জন্য আরও উপযুক্ত:

rsync -av src / ব্যবহারকারী @ সার্ভার: গন্তব্য /

(এবং এর ম্যানুয়াল পৃষ্ঠাটি মূল্যবান।)


2
আমি সর্বদা আরএসইএনসি-র জন্য বিকল্পটি ব্যবহার করি, আমি এটি ছাড়া বাঁচতে পারি না = ডি
হোফা

1
@ হোফা আমি সাধারণত-পি ব্যবহার করি কারণ এটি সংক্ষিপ্ত, এর মধ্যে ইতিমধ্যে - প্রগ্রেস অন্তর্ভুক্ত রয়েছে এবং এতে পার্টিয়াল রয়েছে যা আমি ইতিমধ্যে এর অগ্রগতিতে আগ্রহী কিনা তা অনুধাবন করতে পারে ;-)
সিস্টামাস

9

উত্স ডিরেক্টরি পরে স্ল্যাশ রাখবেন না। আপনার কোডটি দেখতে এমন হবে:

scp -rp src user@server:dest/

এটি সমস্ত লুকানো ফাইল অন্তর্ভুক্ত করে দূরবর্তী মেশিনে 'গন্তব্য' এর অধীনে একটি ডিরেক্টরি 'এসসিআর' তৈরি করবে। এটি সম্ভবত আপনি যা চান ঠিক তা নয় তবে এটি লুকিয়ে থাকা ফাইলগুলি এসসিআর-তে অনুলিপি করবে।


3

নিম্নলিখিতটি সমস্যার সমাধান করবে, এটি আমাদের ক্রমাগত সংহত পরিবেশের উপর পুরোপুরি পরীক্ষা করা হয়েছে

scp -rp src/. user@server:dest/
example scp -rp /usr/src/code/. content001@172.11.11.11:/usr/dest/code/

আশা করি এটা সাহায্য করবে


Scp সম্প্রতি আপডেট করার পরে, এটি এখন ফলাফল scp: error: unexpected filename: . । আপনার ডিস্ট্রিবিউশন, সহকারীর গুগলারের সাথে এটি কাজ করে কিনা তা পরীক্ষা করে নেওয়ার বিষয়টি নিশ্চিত করুন :)
মরিটজ ফ্রিডরিচ

1

কেবল লুকানো ফাইলগুলি অনুলিপি করতে, এই আদেশটি ব্যবহার করুন

scp -rp /path_to_copy_hidden/.[!.]* user@host:/path_to_paste/

আসল খেলাটি সেই /.[!.]*ট্যাগ যা সেই ফাইলগুলি .(গোপন) দিয়ে শুরু করে refer


0

উপরের স্ক্রিপ সমাধানগুলির কোনওটিই আমার পক্ষে কাজ করেনি। যাইহোক, আমি খুঁজে পেয়েছি যে নিম্নলিখিতটি সাইগউইন: scp -r ডিরেক্টরি / * হোস্ট: ডিরেক্টরিতে কাজ করেছে সমস্ত দৃশ্যমান ফাইলের সাথে '*' মিলছে এবং অদৃশ্যটি এড়িয়ে গেছে।


0

যদি পাসওয়ার্ড লগইন দূরবর্তী মেশিনে অক্ষম থাকে, এবং লগইন করার একমাত্র উপায় পাবলিক কী দ্বারা হয় তবে আপনি এটি ব্যবহার করতে পারেন:

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress user1@remote.host:/remote/source/directory/ /local/destination/directory/

এটি লুকানো ফাইলগুলিও অনুলিপি করে।

এছাড়াও দয়া করে নোট করুন যে "ইউজার 1" এর অবশ্যই এই ফাইলগুলি পড়ার অনুমতি থাকতে হবে, উদাহরণস্বরূপ আপনি এই পদ্ধতির সাহায্যে অন্য ব্যবহারকারীর ssh ফোল্ডারগুলি অনুলিপি করতে পারবেন না।


0

হিসাবে scpরেগুলার এক্সপ্রেশনের সমর্থন করে, এই চমত্কারভাবে আপনার জন্য কৌতুক করতে হবে:

scp -rp src/(*|.*) user@server:dest/


0

বিতরণিত পুনর্বিবেচনা নিয়ন্ত্রণ লুকানো ফাইলগুলি পরিচালনা করে

জন্য CVE-2018-20685 দুর্বলতার কারণে /.কৌতুক আর ব্যবহার করা যেতে পারে সঙ্গে scp। তবে gitএইচজি মেকুরিয়ালের মতো বিতরণকৃত সংশোধন নিয়ন্ত্রণ অন্য কোনও ফাইলের মতো লুকানো ফাইলগুলি পরিচালনা করবে। আমার প্রিয় এইচজি মার্চুরিয়ালের জন্য কমান্ডগুলি এখানে :

server:$ sudo apt install mercurial
client:$ sudo apt install mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://user@server/dest/

পরবর্তী পরিবর্তনগুলি পুনরায় প্রতিশ্রুতিবদ্ধ হতে হবে client:$ hg com -m "commit message"এবং তারপরে client:$ hg pushকমান্ডটি ব্যবহার করে তা ঠেলে দেওয়া হবে । এই এইচজি মার্চুরিয়াল চিট শীট থেকে পরিবর্তনগুলি ঠেলে দেওয়ার বিষয়ে আরও জানুন ।

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