আরএসসিএনসি ব্যবহার করে যে ফাইলগুলি মুদ্রণ করা হত তা কীভাবে মুদ্রণ করবেন?


32

আসলে কোনও ফাইল স্থানান্তর না করে সমস্ত ফাইলের সম্পূর্ণ ফাইলপথগুলি মুদ্রণের জন্য আরএসসিএনসি পাওয়ার কোনও উপায় আছে কি?

বিকল্পভাবে, কেবলমাত্র আকার বা শেষ-সংশোধিত সময়ের পরিবর্তনের ভিত্তিতে দুটি গাছের (এসএসএইচ এর বেশি) জুড়ে ফাইলগুলি পৃথক করার জন্য আমার একটি উপায় প্রয়োজন।

উত্তর:


33

Rsync এর dry-runবিকল্প রয়েছে:

-n, --dry-run               show what would have been transferred

আপনারা যা চান এটি নিশ্চিত কিনা তা আমি নিশ্চিত নই।

আপনি যদি diffদুটি গাছ জুড়ে ফাইলগুলি করতে চান তবে আপনি সম্ভবত ls এবং আউটপুট থেকে দুটি ফাইলে পাইপের জন্য দুটি দিক অনুসন্ধান এবং পাইপ দিয়ে অনুসন্ধান করতে পারেন। তারপরে আপনি diffফাইলগুলি তুলনা করতে ব্যবহার করতে পারেন ।


3
+1, এটি rsync এ অন্তর্নির্মিত। এর আউটপুট --dry-runবিশদটি আপনার ব্যবহারের উপর নির্ভর করবে -vএবং --progress options- সুতরাং যদি আপনি কোনও আউটপুট না পান তবে এই বিকল্পগুলি প্রয়োজনীয় হিসাবে সেট করা আছে। আমি লক্ষ্য করেছি যে এটি ফাইলের নাম পরিবর্তন না হওয়া সত্ত্বেও ডিরেক্টরিগুলির নাম প্রেরণ করবে, তবে আপনি আউটপুট sedবা অনুরূপ পাস করে এইগুলি ফিল্টার করতে পারবেন ।
ডেভিড স্পিললেট

4
তবে - ড্রাই-রান চালানো ফাইলগুলি অভিন্ন হলেও দেখাবে বলে মনে হচ্ছে।
কোয়ান্টাম 7

14

আমি বিশদটি দেখতে, আউটপুট-বিন্যাসটি কম ব্যবহার করতে পছন্দ করি:

rsync -azh --dry-run --delete-after --out-format="[%t]:%o:%f:Last Modified %M" source destination | less

7

rsync -rvn localdir targetdir

-N এর অর্থ কেবল ক্রিয়া প্রদর্শন করা (কোনও ক্রিয়া সম্পাদন করা ছাড়াই)।

মনে রাখবেন আপনার 'ভি' দরকার বা এটি আপনাকে কিছু দেখায় না! (বাকি উত্তরগুলি এটি ভুলে যায় ...)


2
অনুসারীদের জন্য -n "
শুকনো

1

অন্যান্য উত্তর এবং /server//a/618740/114520 এ বিল্ডিং

  • পরিবর্তন এড়ানোর জন্য --dry-run(বা -n) ব্যবহার করুন
  • পরিবর্তনগুলি খুঁজতে --itemize-changes(বা -i) ব্যবহার করুন
  • --archive(বা -a) সমস্ত উপ-ডিরেক্টরি পেতে ব্যবহার করুন
  • egrepবিন্দু দ্বারা প্রারম্ভিক এন্ট্রি ফিল্টার আউট ব্যবহার (কোন পরিবর্তন নেই)

যা আপনাকে দেয়: rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\."

আপনি যদি কেবল একটি উপায় চান তবে আপনি আদেশটি পরিবর্তন করতে পারেন:

  • উত্স থেকে গন্তব্য পরিবর্তনের জন্য: rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|<)"
  • গন্তব্য থেকে উত্স পরিবর্তনের জন্য: rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|>)"

এবং আপনার যদি কেবল ফাইলগুলির প্রয়োজন হয় তবে কেবল awkযাদু যুক্ত করুন:rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\." | awk '{print $2}'


0

আমি এই জাতীয় কিছু জন্য যেতে হবে:

#! /bin/bash 

set -eu   ## Stop on errors and on undefined variables

## The local directory name
LOCAL_DIR=$1
## The remote directory in rsync sintax. Example: "machine:directory"
REMOTE_DIR=$2

shift 
shift 
# Now the first two args are gone and any other remaining arguments, if any, 
# can be expanded with $* or $@

# Create temporary file in THIS directory (hopefully in the same disk as $1:
# we need to hard link, which can only made in the same partition)
tmpd="$(mktemp -d  "$PWD/XXXXXXX.tmp" )"

# Upon exit, remove temporary directory, both on error and on success
trap 'rm -rf "$tmpd"' EXIT

# Make a *hard-linked* copy of our repository. It uses very little space 
# and is very quick 
cp -al "$LOCAL_DIR" "$tmpd"

# Copy the files. The final «"$@"» allows us to pass on arguments for rsync 
# from the command line (after the two directories).
rsync -a "$REMOTE_DIR"/   "$tmpd/"  --size-only "$@"

# Compare both trees
meld "$LOCAL_DIR"  "$tmpd"

উদাহরণ স্বরূপ:

$ cd svn 
$ rsyncmeld myproject othermachine:myproject -v --exclude '*.svn' --exclude build

0

ব্যাপার সত্য যে আপনি যদি চালানো হয় rsync -v ...এবং এটি পর্দা থেকে একটি ফাইলের নাম আউটপুট, এই ফাইলটি হয় স্থানান্তরিত হচ্ছে (অথবা, স্থানান্তরিত করা হত আপনি একটি --dry রানের করছেন)। আর আর সিএনসি কেন এটি স্থানান্তর করতে চলেছে তা নির্ধারণের জন্য, আইটেমাইজ মোডটি ব্যবহার করুন: /server//a/618740/27813

অন্যরা যেমন উল্লেখ করেছে, ডিফল্টরূপে rsync কেবল ফাইলের আকার এবং টাইমস্ট্যাম্পের উপর ভিত্তি করে তুলনা করে, যা উভয়েরই সাথে অন্য একটি ফাইলের সাথে "ডেল্টা অনুলিপি" শুরু হয়। আপনি যদি সত্যিই কোন ফাইলগুলি দেখতে আলাদা করতে চান তবে "-c" চেকসাম মোডটি ব্যবহার করুন।

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