كيفية استخدام أمر اللمس على Linux

النقاط الرئيسية

  • يقوم أمر اللمس بتحديث أوقات الوصول والتعديل للملفات، وهو أمر مفيد لضمان تحديد الملفات بواسطة إجراءات النسخ الاحتياطي والعمليات الأخرى.
  • لإنشاء ملف فارغ باستخدام 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
استخدام أمر اللمس لإنشاء ملف جديد من سطر أوامر Linux.

يتم إنشاء الملفات في المواقع المطلوبة. وهي لا تزيد عن اسم ملف في نظام الملفات في هذه المرحلة،

ls -hl new-file.txt 
التحقق من أن الملف الذي تم إنشاؤه حديثًا موجود بالفعل، باستخدام الأمر ls على سطر أوامر Linux.

ملفنا موجود بالتأكيد، على الرغم من أن حجمه هو صفر بايت.

لإنشاء ملفات متعددة، قم بتوفير قائمة بأسمائها على سطر الأوامر.


touch new-file-2.txt new-file-3.txt new-file-4.txt 
ls *.txt
استخدام اللمس على سطر أوامر Linux لإنشاء ملفات متعددة في وقت واحد.

إذا كانت الملفات التي ستقوم بإنشائها تحتوي على أسماء مرقمة بشكل تسلسلي، فيمكنك إنشاءها جميعًا دفعة واحدة مثل هذا.

touch even-more-files-{1..6}.txt 
ls even*
استخدام الأمر topuch لإنشاء ملفات مرقمة بشكل تسلسلي على سطر أوامر Linux.

ضبط وقت الوصول إلى الوقت الحالي

سنستخدم ملفًا نموذجيًا لتوضيح استخدام اللمس. يمكننا استخدام أمر stat لمعرفة الطوابع الزمنية الخاصة به.

stat sample-file.txt 
استخدام الأمر stat لعرض الطوابع الزمنية للوصول والتحرك لملف، على سطر أوامر Linux.


تاريخ الوصول هو 14:32:47 في 5 أغسطس 2024، وتاريخ تعديله هو منتصف الليل في 20 يوليو 2024.

لتعيين وقت الوصول إلى وقت الكمبيوتر الحالي، نستخدم الخيار -a (الوصول).

touch -a sample-file.txt
stat sample-file.txt
استخدام أمر اللمس لتعيين وقت وصول الملف إلى وقت الكمبيوتر الحالي، على سطر أوامر Linux.

تم تغيير طابع زمني للوصول إلى 10:42:00 في 6 أغسطس 2024.

لاحظ أن طابع الوقت للتغيير قد تم تحديثه أيضًا. هذا هو الوقت الذي تم فيه تغيير الملف آخر مرة، بأي حال من الأحوال. على سبيل المثال، سيكون تعيين أذونات ملف جديدة كافيًا لتحديث طابع الوقت للتغيير. يعد تحديث طابع الوقت للوصول تغييرًا، لذا يتم تحديث طابع الوقت للتغيير.

ضبط وقت التعديل على الوقت الحالي

يعد ضبط وقت التعديل أمرًا مباشرًا، ولكننا نستخدم الخيار -m (تعديل).


touch -m sample-file.txt
stat sample-file.txt
استخدام أمر اللمس لتعيين وقت تعديل الملف إلى وقت الكمبيوتر الحالي، على سطر أوامر Linux.

يظهر الآن طابع زمني للتعديل لدينا 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 -d لتعيين أوقات الوصول والتعديل إلى وقت محدد من قبل المستخدم.

سوف نقوم بتعيين أوقات الوصول وتعديل الطوابع الزمنية إلى منتصف الليل، في عيد الهالوين هذا العام.

touch -t 2410310000.00 sample-file.txt
stat sample-file.txt
استخدام خيار touch -t لتعيين أوقات الوصول والتعديل إلى وقت محدد من قبل المستخدم.


تعيين مرة واحدة فقط لقيمة محددة

تعمل الخياران -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
استخدام خيارات touch -mt لتعيين وقت التعديل إلى وقت محدد من قبل المستخدم.

يمكننا أن نفعل الشيء نفسه مع طابع زمني للوصول، وذلك باستخدام -at في الأمر.

تعيين أوقات الوصول والتعديل على أوقات ملف آخر

يمكننا أن نطلب من touch أن يأخذ الطوابع الزمنية من ملف موجود وينسخها على ملف مستهدف.

يتيح لك هذا تعيين الطوابع الزمنية لملف أو مجموعة ملفات إلى ملف موجود تعرف أنه يحتوي على الطوابع الزمنية التي تريدها. ويوفر عليك ذلك عناء معرفة كيفية كتابة الطوابع الزمنية إما بتنسيق -d أو -t، وكتابة سلسلة التنسيق على سطر الأوامر.

لدينا ملف يسمى reference-file.txt. هذه هي الطوابع الزمنية الخاصة به.

stat reference-file.txt 
استخدام الأمر stat fil; لعرض الطوابع الزمنية لملف نصي مرجعي.


سنطبق هذه الطوابع الزمنية على ملفنا المستهدف، وننشئ ملفًا آخر يسمى sample-2.txt في نفس الوقت. سيُطبق على ملفنا الجديد الطوابع الزمنية من reference-file.txt أيضًا، بدلاً من وقت إنشائه الفعلي.

touch -r reference-file.txt sample-file.txt sample-2.txt
stat sample-file.txt sample-2.txt
استخدام أمر اللمس لنسخ الطوابع الزمنية من ملف مرجعي إلى ملف موجود، وملف تم إنشاؤه حديثًا، من سطر أوامر Linux.

يمكننا أن نرى أن اللمس يطبق علامات زمنية الوصول والتعديل من ملف المرجع إلى ملفاتنا الحالية والجديدة.

لا تنشئ ملفًا، فقط قم بتعديل الملفات الموجودة

في بعض الأحيان، لا ترغب في أن يقوم 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
استخدام الخيار -c لقمع الإجراء الافتراضي لأمر اللمس المتمثل في إنشاء ملفات مفقودة، من سطر أوامر Linux.


نتحقق من عدم وجود ملف missing-in-action.txt، ثم نطلب من touch تحديث طوابع زمنية للتعديل الخاصة بملفي sample-file.txt وmissing-in-action.txt، ولكن فقط إذا كانت موجودة.

يمكننا أن نرى أن طابع زمني للتعديل الخاص بملف sample-file.txt قد تم تغييره، ولكن لم يتم إنشاء ملف missing-in-action.txt.

لمسة من الرقي

يمكنك إنشاء ملفات باستخدام تقنيات أخرى، مثل إعادة التوجيه أو cat، لكن هذه الطرق لا تسمح لك بإنشاء ملفات متعددة بسهولة كما تفعل touch. وفقط touch يمكنه ضبط طوابع زمنية للملفات إلى أي شيء تريده.

هذا هو مستوى المهارة الذي يجعل اللمسة مميزة.

أضف تعليق