স্ট্যাটাস: কোনও ফাইলের সংশোধন টাইমস্ট্যাম্প


11

আমি stat -f %m .bashrcওএসএক্সে আমার .bashrc এর পরিবর্তনের সময় পেতে ব্যবহার করি । তবে আমি যখন উবুন্টুতে একই কমান্ডটি চালাই, তখন এটি ত্রুটিটি ছুঁড়ে দেয়:

stat: cannot read file system information for %m': No such file or directory

এটি অর্জনের জন্য কি কোনও সামঞ্জস্যপূর্ণ উপায় আছে?

উত্তর:


12

উবুন্টু জিএনইউ কোর্টিল ব্যবহার করে stat, যেখানে ওএসএক্স বিএসডি ভেরিয়েন্ট ব্যবহার করে। উবুন্টুতে কমান্ডটি কিছুটা আলাদা:

stat -c %Y .bashrc

থেকে man stat:

   -c  --format=FORMAT
          use the specified FORMAT instead of the default; output  a  new
          line after each use of FORMAT

এবং:

   %Y     time of last data modification, seconds since Epoch

আপনি যদি ওএস নির্বিশেষে এগুলি চালনার জন্য পোর্টেবল উপায় চান তবে এটি করার বিভিন্ন উপায় রয়েছে। আমি মনে করি আমি উপযুক্ত প্যারামিটারগুলিতে একটি পরিবর্তনশীল এক সময় সেট করব:

if uname | grep -q "Darwin"; then
    mod_time_fmt="-f %m"
else
    mod_time_fmt="-c %Y"
fi

এবং তারপরে statযেখানে প্রয়োজন সেখানে কমান্ডটিতে এই মানটি ব্যবহার করুন :

stat $mod_time_fmt .bashrc

7

এটি "এটি" দ্বারা আপনি কী বোঝাতে চান তার উপর নির্ভর করে। বলছি যদি একটি পোর্টেবল একটি ফাইল পেতে পথ কিনা আছে mtimeসঙ্গে stat(1), তারপর না, নয়। বিএসডি stat(1)লিনাক্স থেকে আলাদা stat(1)

যদি আপনি জিজ্ঞাসা করেন যে কোনও ফাইল পাওয়ার পোর্টেবল উপায় আছে কিনা mtime, তবে হ্যাঁ, আপনি এটি দিয়ে করতে পারেন perl(1):

perl -e 'print +(stat $ARGV[0])[9], "\n"' file

5

যেহেতু ওএসএক্স এবং উবুন্টু সংস্করণগুলির মধ্যে statকিছু পার্থক্য রয়েছে যে ওএসএক্সের statডিফল্টগুলি আউটপুটটি সংশ্লেষ করতে এবং লিনাক্সের statডিফল্টকে ভার্বোজ করতে কিছু হুপের মধ্য দিয়ে যেতে হয় to একটি সম্ভাবনা হ'ল ওএসএক্সে কেবল একটি এলিফ ব্যবহার করা স্ট্যাটাসকে উভয় ক্ষেত্রে একই সম্পাদন করতে পারে।

আপনি আউটপুট বাগাড়ম্বরপূর্ণ বল একটি ওরফে সেটিং কিছু মনে না করেন statসঙ্গে ওএসএক্স alias stat="stat -x"তারপর আপনি Perl প্রয়োজন হবে না।

stat .bashrc| grep Modify উবুন্টুর নীচে আপনার যা দরকার তা হল। যদি আপনি উপরের মতো উপস্থাপন করেন তবে এটি ওএসএক্সের অধীনেও কাজ করে

উবুন্টু থেকে উদাহরণ 14.04.5 উবুন্টু 16.04 থেকে ভার্চুয়ালি অভিন্ন ফলাফল পাওয়া যাবে obtained

   stat .bashrc| grep Modify
Modify: 2014-03-30 23:14:47.658210121 -0500

আপনি যা চান তা যদি টাইমস্ট্যাম্প হয় তবে আপনি এটিটি কেড়ে ফেলতে Modify:এবং বাকীটি ধরে রাখতে পারবেন

stat .bashrc| grep Modify | cut -c 9-

সূত্র:

https://ss64.com/osx/stat.html

ওএসএক্স-এ স্ট্যাটাসের আউটপুট


আমি মনে করি আপনি OSX এ -x বিকল্পটি হারিয়েছেন।
fushupinnanren

@ ডেরি আপনি সঠিক, দুঃখজনকভাবে আমাকে ওএসএক্স বিটগুলির জন্য গবেষণার উপর নির্ভর করতে হবে কারণ আমার কাছে ওএসএক্স নেই। সঠিক উত্তর।
বয়স্ক গীক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.