একটি সিমিলিংকের টাইমস্ট্যাম্প পরিবর্তন করা


31

আমি জানি কীভাবে একটি নিয়মিত ফাইলের টাইমস্ট্যাম্প পরিবর্তন করতে হয়:

touch -t 201301291810 myfile.txt

আমি একটি সিমলিংক দিয়ে একই করতে সক্ষম ছিল না। এটা কি সম্ভব?

ডিস্ট্রো: আরএইচএল 5.8


2
আপনি যে সমস্যাটি সমাধান করার চেষ্টা করছেন তা কী?
এমডিপিসি

2
তবে কেন .... আপনি আর কী বিশ্বব্যাপী সমস্যা সমাধানের চেষ্টা করছেন? এটি কি শুধুই অ্যাস্টেটিক্স, নাকি এর বাস্তব উদ্দেশ্য রয়েছে?
এমডিপিসি

7
এটা অপ্রাসঙ্গিক। আমি আমার ব্যবসায়িক যুক্তিতে যাচ্ছি না
উভচর

5
এই ধরণের তথ্য আমাদের সকলকে এমন একটি সমাধান পেতে সহায়তা করে যা আপনার জন্য কার্যকর হবে। এটি অপ্রাসঙ্গিক নয়। দুঃখিত আপনি এত সংবেদনশীল, আমি কেবল সাহায্য করার চেষ্টা করছি।
এমডিপিসি

4
বাবু, এটা অপ্রাসঙ্গিক। প্রদত্ত ধ্রুবক, অদম্য হিসাবে কেবল টাইমস্ট্যাম্প পরিবর্তন করার প্রয়োজনীয়তার সাথে যান। আপনি যা চান তা আপনি প্রশ্ন করতে পারেন তবে এটি আমার শেষের দিকে পরিবর্তন হচ্ছে না। যা প্রশ্নোত্তরকে কার্যকরভাবে কার্যকরভাবে অনেক বেশি অকেজো করে তোলে। শুভকামনা
উভচর

উত্তর:


45

সুইচ -h যোগ করুন

touch -h -t 201301291810 myfile.txt

Mandatory arguments to long options are mandatory for short options too.
  -a                     change only the access time
  -c, --no-create        do not create any files
  -d, --date=STRING      parse STRING and use it instead of current time
  -f                     (ignored)
  -h, --no-dereference   affect each symbolic link instead of any referenced
                         file (useful only on systems that can change the
                         timestamps of a symlink)
  -m                     change only the modification time
  -r, --reference=FILE   use this file's times instead of current time
  -t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time

> টাচ -h -t 201301291810 মাইজিমিংক -> স্পর্শ: অবৈধ বিকল্প - h আরও তথ্যের জন্য `টাচ - সহায়তা Try চেষ্টা করুন।
উভচর

2
"কেবলমাত্র সেই সিস্টেমে দরকারী যেগুলি একটি সিমলিংকের টাইমস্ট্যাম্পগুলি পরিবর্তন করতে পারে" এ উদ্ধৃতিটি দেখুন।
এমডিপিসি

3
এটি কেবল সম্প্রতি যুক্ত করা হয়েছিল (এটি 2010 থেকে এই ম্যানপেজে নেই )। হতে পারে তার কেবল কোর্টিলের সর্বশেষতম সংস্করণ পাওয়া দরকার। ২০০৯
ভিন্নতা এখানে

যদি এটি সঠিক উত্তর হয় তবে দয়া করে এটি চিহ্নিত করুন।
কডেনিনজা

@ কোডেনিনজা ছয় বছরেরও বেশি সময় পেরিয়ে যাওয়ার পরেও আমি সত্যিই আশা করি না যে ওপি এটি কোনও উপায়ে বা অন্যভাবে চিহ্নিত করবে।
স্টেফান

3

আপনার আরও একটি সাম্প্রতিক সংস্করণ প্রয়োজন হতে পারে touch। যদি এটি কোনও বিকল্প না হয় এবং আপনি যদি সি জানেন তবে লুটাইমস ফাংশনটি ব্যবহার করে আপনি নিজে এটি করার জন্য একটি ছোট প্রোগ্রাম লিখতে পারেন ।


0

একটি নিষ্ঠুর বলের উপায় নিম্নরূপ:

 0. delete the old symlink you wish to change     
 1. change the system date to whatever date you want the symlink to be
 2. remake the symlink
 3. return the system date to current.

আমাকে কৌতূহলী করে তুলেছে, কোন সিস্টেমের এটি দরকার? বিটিডব্লিউ, আপনি এখনও সিমেন্টের তারিখ স্থির করেননি এমন সময়ে তৈরি হওয়া কোনও ফাইলের সেই টাইমস্ট্যাম্পটিও থাকবে
কুম্ভ বিদ্যুৎ

কারণ একবারে একবার তৈরি হয়ে গেলে সিমলিংক ইনোডটি পরিবর্তন করতে অক্ষম।
এমডিপিসি

0

প্রতীকী লিঙ্কটির এটাইম এবং এমটাইম lutimesফাংশনটি ব্যবহার করে পরিবর্তন করা যেতে পারে । নিম্নলিখিত প্রোগ্রামটি আমার জন্য মেকোএসএক্স এবং লিনাক্সে একটি সালিসী ফাইল থেকে একটি প্রতীকী লিঙ্কে উভয় বার অনুলিপি করতে কাজ করে:

#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/time.h>

int
main(int argc, char **argv)
{
    struct timeval times[2];
    struct stat info;
    int rc;

    if (argc != 3) {
        fprintf(stderr, "usage: %s source target\n", argv[0]);
        return 1;
    }
    rc = lstat(argv[1], &info);
    if (rc != 0) {
        fprintf(stderr, "error: cannot stat %s, %s\n", argv[1],
                strerror(errno));
        return 1;
    }

    times[0].tv_sec = info.st_atime;
    times[0].tv_usec = 0;
    times[1].tv_sec = info.st_mtime;
    times[1].tv_usec = 0;
    rc = lutimes(argv[2], times);
    if (rc != 0) {
        fprintf(stderr, "error: cannot set times on %s, %s\n", argv[2],
                strerror(errno));
        return 1;
    }

    return 0;
}

আপনি যদি সংকলিত ফাইলকে কল করেন copytime, তবে copytime file linkলিঙ্কটি তৈরি করতে কমান্ডটি একই সময় ও এমটাইমের মতো থাকতে fileপারে। অন্য ফাইল থেকে সময় অনুলিপি না করে কমান্ড লাইনে নির্দিষ্ট সময় ব্যবহার করার জন্য প্রোগ্রামটি পরিবর্তন করা খুব কঠিন হওয়া উচিত নয়।

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