النقاط الرئيسية
- يقوم أمر اللمس بتحديث أوقات الوصول والتعديل للملفات، وهو أمر مفيد لضمان تحديد الملفات بواسطة إجراءات النسخ الاحتياطي والعمليات الأخرى.
- لإنشاء ملف فارغ باستخدام touch، استخدم أمرًا مثل “touch new-file.txt”.
- استخدم العلامة -m لتعيين وقت التعديل إلى الوقت الحالي، أو العلامة -a لتعيين وقت الوصول إلى الوقت الحالي.
لا يقتصر الأمر touch على إنشاء ملفات فارغة فحسب. فهو يقوم بتحديث أوقات الوصول والتعديل، مما يضمن أن تتضمن الإجراءات الروتينية مثل إنشاء البرامج النصية والنسخ الاحتياطية الملفات التي تريدها. وإليك كيفية استخدامه.
ما هو أمر اللمس؟
يعد أمر اللمس جزءًا من أدوات أساسية لنظام GNUويجب أن تكون هذه الأداة موجودة في جميع توزيعات Linux. وهي أداة قديمة، يعود تاريخها إلى أواخر سبعينيات القرن العشرين وإصدار الإصدار 7 من نظام التشغيل Unix.
أستخدمه في الغالب كطريقة سريعة وسهلة لإنشاء الملفات، ولكن هذا في الواقع تأثير جانبي للغرض الرئيسي منه. فهو يسمح لك بتعيين أوقات الوصول إلى الملفات وتعديلها. ويحدث أن الإجراء الافتراضي فيه هو إنشاء الملف أيضًا، إذا لم يكن موجودًا.
تعمل ميزة touch على استبدال بيانات التعريف الخاصة بالملف بحيث يبدو الأمر كما لو تم الوصول إلى الملف (فتحه وقراءته) أو تعديله (تغيير محتوياته) أو كليهما في وقت معين. وتوفر لك هذه الميزة مجموعة متنوعة من الطرق لتحديد الأوقات.
مع ذلك، أعتقد أن استخدامه الأكثر شيوعًا ربما يعتمد على تأثيره الجانبي السعيد المتمثل في إنشاء ملفات فارغة.
إنشاء ملفات فارغة
إن إنشاء الملفات باللمس هو أمر سهل للغاية.
touch new-file.txt
touch ~/Documents/outlines/rough-outline.txt
ls *.txt
ls ~/Documents/outlines
يتم إنشاء الملفات في المواقع المطلوبة. وهي لا تزيد عن اسم ملف في نظام الملفات في هذه المرحلة،
ls -hl new-file.txt
ملفنا موجود بالتأكيد، على الرغم من أن حجمه هو صفر بايت.
لإنشاء ملفات متعددة، قم بتوفير قائمة بأسمائها على سطر الأوامر.
touch new-file-2.txt new-file-3.txt new-file-4.txt
ls *.txt
إذا كانت الملفات التي ستقوم بإنشائها تحتوي على أسماء مرقمة بشكل تسلسلي، فيمكنك إنشاءها جميعًا دفعة واحدة مثل هذا.
touch even-more-files-{1..6}.txt
ls even*
ضبط وقت الوصول إلى الوقت الحالي
سنستخدم ملفًا نموذجيًا لتوضيح استخدام اللمس. يمكننا استخدام أمر stat لمعرفة الطوابع الزمنية الخاصة به.
stat sample-file.txt
تاريخ الوصول هو 14:32:47 في 5 أغسطس 2024، وتاريخ تعديله هو منتصف الليل في 20 يوليو 2024.
لتعيين وقت الوصول إلى وقت الكمبيوتر الحالي، نستخدم الخيار -a (الوصول).
touch -a sample-file.txt
stat sample-file.txt
تم تغيير طابع زمني للوصول إلى 10:42:00 في 6 أغسطس 2024.
لاحظ أن طابع الوقت للتغيير قد تم تحديثه أيضًا. هذا هو الوقت الذي تم فيه تغيير الملف آخر مرة، بأي حال من الأحوال. على سبيل المثال، سيكون تعيين أذونات ملف جديدة كافيًا لتحديث طابع الوقت للتغيير. يعد تحديث طابع الوقت للوصول تغييرًا، لذا يتم تحديث طابع الوقت للتغيير.
ضبط وقت التعديل على الوقت الحالي
يعد ضبط وقت التعديل أمرًا مباشرًا، ولكننا نستخدم الخيار -m (تعديل).
touch -m sample-file.txt
stat sample-file.txt
يظهر الآن طابع زمني للتعديل لدينا 10:42:50 في 6 أغسطس 2024.
تعيين أوقات الوصول والتعديل لأوقات محددة
توجد طريقتان لتعيين كل من طوابع الوصول والتعديل على الوقت الذي تختاره. أي أنه لا يتم تعيينها على وقت الكمبيوتر الحالي، بل يتم تعيينها على قيمة الوقت والتاريخ التي تقدمها على سطر الأوامر.
الفرق الوحيد بينهما هو التنسيق الذي تقدمه للوقت والتاريخ على سطر الأوامر.
يقبل الخيار -d (التاريخ) سلسلة بتنسيق حر، وبأسلوب يمكن قراءته بواسطة البشر، مثل “الأربعاء، 7 أغسطس 2024 16:00:00” أو “2024-7-11 16:00:00″، أو حتى عبارات مثل “الأحد المقبل”.
يتطلب خيار -t (الختم) تنسيقًا مختلفًا وأقل سهولة. التنسيق هو:
(CC)YY)MMDDhhmm(.ss)
هذا هو القرن، القرن، السنة، السنة، ثم الشهر، اليوم، الساعة، الدقيقة، والثواني. أرقام الثواني والقرن والسنة اختيارية. يتم استخدام النقطة “.” لفصل الثواني عن الدقائق.
إذا قمت بتوفير سنة، فإن أرقام القرن اختيارية، ويتم افتراض هذا القرن.
دعونا نستخدم الخيار -d أولاً.
touch -d "Wed, August 7 2024 16:00:00" sample-file.txt
stat sample-file.txt
سوف نقوم بتعيين أوقات الوصول وتعديل الطوابع الزمنية إلى منتصف الليل، في عيد الهالوين هذا العام.
touch -t 2410310000.00 sample-file.txt
stat sample-file.txt
تعيين مرة واحدة فقط لقيمة محددة
تعمل الخياران -t و-d على كلا الطابعين الزمنيين في نفس الوقت. يحدد الخياران -a و-m طابعًا زمنيًا واحدًا، ولكن على الوقت الحالي، وليس الوقت الذي يحدده المستخدم.
ماذا عن الحالة التي تريد فيها تعيين علامة زمنية واحدة لوقت عشوائي؟ يمكننا تحقيق ذلك أيضًا. الأمر بسيط، لكنه يتعارض مع البديهية بعض الشيء.
إن الجمع بين خياري -a أو -m مع أحد خياري -t أو -d يسمح لك بتوفير وقت على سطر الأوامر ينطبق فقط على طوابع زمنية للوصول أو التعديل.
فيما يلي مثال. سنضبط طابع الوقت للتعديل على 1145 في 21 ديسمبر من هذا العام، 2024، وهو أقصر يوم في العام.
باستخدام سلسلة التنسيق -t، يمكننا كتابة هذا على النحو التالي 12211145.00. نحن لا نقدم مكونات CC أو YY، لذا فإن touch سوف يفترض أننا نعني العام الحالي.
لاحظ أننا نستخدم الخيارين -m و-t هنا. يجب أن يأتي الخيار -m أولاً.
touch -mt 12211145.00 sample-file.txt
stat sample-file.txt
يمكننا أن نفعل الشيء نفسه مع طابع زمني للوصول، وذلك باستخدام -at في الأمر.
تعيين أوقات الوصول والتعديل على أوقات ملف آخر
يمكننا أن نطلب من touch أن يأخذ الطوابع الزمنية من ملف موجود وينسخها على ملف مستهدف.
يتيح لك هذا تعيين الطوابع الزمنية لملف أو مجموعة ملفات إلى ملف موجود تعرف أنه يحتوي على الطوابع الزمنية التي تريدها. ويوفر عليك ذلك عناء معرفة كيفية كتابة الطوابع الزمنية إما بتنسيق -d أو -t، وكتابة سلسلة التنسيق على سطر الأوامر.
لدينا ملف يسمى reference-file.txt. هذه هي الطوابع الزمنية الخاصة به.
stat reference-file.txt
سنطبق هذه الطوابع الزمنية على ملفنا المستهدف، وننشئ ملفًا آخر يسمى sample-2.txt في نفس الوقت. سيُطبق على ملفنا الجديد الطوابع الزمنية من reference-file.txt أيضًا، بدلاً من وقت إنشائه الفعلي.
touch -r reference-file.txt sample-file.txt sample-2.txt
stat sample-file.txt sample-2.txt
يمكننا أن نرى أن اللمس يطبق علامات زمنية الوصول والتعديل من ملف المرجع إلى ملفاتنا الحالية والجديدة.
لا تنشئ ملفًا، فقط قم بتعديل الملفات الموجودة
في بعض الأحيان، لا ترغب في أن يقوم touch بإنشاء ملف إذا لم يكن موجودًا. يمكنك تجاوز الإجراء الافتراضي الخاص به عن طريق تضمين الخيار -c (عدم إنشاء).
ls missing-in-action.txt
touch -c -mt 202409170900.00 sample-file.txt missing-in-action.txt
stat sample-file.txt
ls missing-in-action.txt
نتحقق من عدم وجود ملف missing-in-action.txt، ثم نطلب من touch تحديث طوابع زمنية للتعديل الخاصة بملفي sample-file.txt وmissing-in-action.txt، ولكن فقط إذا كانت موجودة.
يمكننا أن نرى أن طابع زمني للتعديل الخاص بملف sample-file.txt قد تم تغييره، ولكن لم يتم إنشاء ملف missing-in-action.txt.
لمسة من الرقي
يمكنك إنشاء ملفات باستخدام تقنيات أخرى، مثل إعادة التوجيه أو cat، لكن هذه الطرق لا تسمح لك بإنشاء ملفات متعددة بسهولة كما تفعل touch. وفقط touch يمكنه ضبط طوابع زمنية للملفات إلى أي شيء تريده.
هذا هو مستوى المهارة الذي يجعل اللمسة مميزة.