আমি সেন্টওএস 5.5 ব্যবহার করছি এবং ফোল্ডার একটি বৃহৎ পরিমাণ সরাতে চাই এক ভলিউম মধ্যে , তাদের ধারনকারী mtime।
আমি যে সর্বোত্তম সমাধানটি খুঁজে পেতে পারি তা হ'ল:
cp -p -r source/data target/
rm -rf source/data
একটি এনএফএস শেয়ারে 1TB এর বেশি ডেটা সহ, অনুলিপিটি চিরকালের জন্য নেয়। আমি কপি করতে চাই না। আমি তাত্ক্ষণিক পদক্ষেপ চাই।
আমি যখন কোনও ফোল্ডার ব্যবহার করে সরিয়ে ফেলি mv source/data target/, mtimeফোল্ডারটির (ফাইল নয়) বর্তমান সময়ে সেট হয়ে যায়। এটি হ'ল কারণ আমি যে ফোল্ডারটি নিয়ে চলেছি সেগুলি এই ক্রিয়াকলাপের মাধ্যমে সংশোধিত হবে ( ..এন্ট্রিটি একটি ভিন্ন ইনোডের দিকে নির্দেশ করছে)।
আমি ফোন করেছি নিম্নলিখিত শেল স্ক্রিপ্ট নিয়ে এসেছি mv_preserve_mtime.sh:
#!/bin/bash
# Moves source folder to target folder.
# You are responsible for making sure the target does not exist, otherwise this blows up
export timestamp=`stat -c %y $1`
mv "$1" "$2"
touch --date="${timestamp}" $2
ঠিক আছে, এটিও কাজ করে না। ফোল্ডারটি mtimeপুনরুদ্ধার করা হয়েছে, তবে আমি যে ফোল্ডারে চলেছি তার মধ্যে সমস্ত ফোল্ডারগুলি (কেবলমাত্র 1 টি স্তর গভীর) mtimeআমি বুঝতে পারছি না তার কারণে তাদের রিসেট পান।
কারও কি সঠিক, দক্ষ ও সঠিক সমাধান রয়েছে?
mvপদক্ষেপ যা সমস্যার সৃষ্টি করে। এনএফএস সার্ভারটি আসলে একটি নেট অ্যাপ্লিকেশন স্টোরেজ, আমি এর অভ্যন্তরগুলি সম্পর্কে কার্যত কিছুই জানি না।
touchকাজ করা উচিত ছিল। উপায় দ্বারা একটি আরও বহনযোগ্য উপায় হবে touch -r "$1" reference.tmp; mv -- "$1" "$2"; touch -r reference.tmp -- "$2"; rm reference.tmp।
statপোর্টেবল ছিল না।
touchহয়নি। এটি কিmvপদক্ষেপ বাtouchপদক্ষেপ যা উপ-ডিরেক্টরিগুলির এমটাইম পরিবর্তন করে? এনএফএস সার্ভারে ওএস কী, এবং (যদি আপনি জানেন) কোন ফাইল সিস্টেমের ধরণ?