سیستم عامل لینوکسمقالات وب

9 مورد از مفیدترین نمونه دستورات Touch در لینوکس

دستورات Touch برای ایجاد فایل های خالی و نیز تغییر timestamp فایل های موجود بر روی سیستم عامل لینوکس و یونیکس به کار می رود. تغییر timestamp در این مقاله به معنای به روزرسانی دسترسی و اصلاح زمان فایل ها و دایرکتوری هاست. در این مقاله همراه ما باشید تا سینتکس و گزینه هایی که به همراه دستور  Touch مورد استفاده قرار می گیرد را با هم مرور کنیم. پس همراه وب ایده باشید.

 مثال اول: ایجاد فایل خالی به کمک دستور touch

برای ایجاد فایل خالی به کمک این دستور در سیستم عامل های لینوکسی،  دستور Touch را به همراه نام فایل تایپ کنید. به مثال زیر توجه کنید:

 [root@linuxtechi ~]# touch devops.txt

[root@linuxtechi ~]# ls -l devops.txt

-rw-r--r--. 1 root root 0 Mar 29 22:39 devops.txt

[root@linuxtechi ~]#

 

 

مثال دوم: ایجاد فایل خالی زیاد به کمک این دستور

در برخی از شرایط مجبور می شویم فایل های خالی زیادی برای تست ایجاد کنیم . برای اینکار می توانید از دستور زیر استفاده کنید:

 [root@linuxtechi ~]# touch sysadm-{1..20}.txt

 

در نمونه بالا ما 20 فایل خالی را با نام sysadm-1.txt تا sysadm-20.tx ایجاد کردیم. شما می توانید نام و اعداد را بر اساس نیاز خود تغییر دهید.

 مثال سوم: تغییر/ به روزرسانی  زمان دسترسی فایل و دایرکتوری

فرض کنید می خواهید زمان دسترسی فایلی به نام devops.txt را تغییر دهید. برای اینکار از گزینه ‘-a‘ در دستور تاچ استفاده می شود و پس از آن نام فایل می آید. به دستور زیر توجه کنید.

 [root@linuxtechi ~]# touch -a devops.txt

[root@linuxtechi ~]#

 

 

حالا باید تایید کنید که زمان دسترسی فایل به روز شود یا خیر. برای اینکار از دستور زیر استفاده خواهیم کرد:

 [root@linuxtechi ~]# stat devops.txt

  File: ‘devops.txt’

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 67324178    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2018-03-29 23:03:10.902000000 -0400

Modify: 2018-03-29 22:39:29.365000000 -0400

Change: 2018-03-29 23:03:10.902000000 -0400

 Birth: -

[root@linuxtechi ~]#

 

 

 تغییر زمان دسترسی دایرکتوری:

فرض کنید فولدری به نام nfsshare در /mnt دارید و می خواهید زمان دسترسی این فولدر را تغییر دهید. برای اینکار می توانید از دستور زیر کمک بگیرید:

 [root@linuxtechi ~]# touch -m /mnt/nfsshare/

[root@linuxtechi ~]#

[root@linuxtechi ~]# stat /mnt/nfsshare/

  File: ‘/mnt/nfsshare/’

  Size: 6               Blocks: 0          IO Block: 4096   directory

Device: fd00h/64768d    Inode: 2258        Links: 2

Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:mnt_t:s0

Access: 2018-03-29 23:34:38.095000000 -0400

Modify: 2018-03-03 10:42:45.194000000 -0500

Change: 2018-03-29 23:34:38.095000000 -0400

 Birth: -

[root@linuxtechi ~]#

 

 

 مثال چهارم: تغییر زمان دسترسی بدون ایجاد فایل جدید

ممکن است در برخی از موقعیت ها مجبور شوید زمان دسترسی فایلی که وجود دارد را تغییر دهید و از ایجاد فایل جدید اجتناب نمایید. در این شرایط می توانید از دستور زیر استفاده کنید:

 [root@linuxtechi ~]# touch -c sysadm-20.txt

[root@linuxtechi ~]# touch -c winadm-20.txt

[root@linuxtechi ~]# ls -l winadm-20.txt

ls: cannot access winadm-20.txt: No such file or directory

[root@linuxtechi ~]#

 

 

مثال پنجم: تغییر زمان اصلاح فایل یا دایرکتوری

به کمک گزینه ‘-m‘  در دستور Touch می توانید زمان اصلاح فایل یا دایرکتوری را تغییر دهید. در مثال زیر ما زمان اصلاح فایلی به نام devops.txt را تغییر می دهیم:

 [root@linuxtechi ~]# touch -m devops.txt

[root@linuxtechi ~]#

 

 

حالا باید تایید کنید زمان اصلاح تغییر یافته است یا نه. برای اینکار از دستور زیر استفاده کنید:

 [root@linuxtechi ~]# stat devops.txt

  File: ‘devops.txt’

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 67324178    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2018-03-29 23:03:10.902000000 -0400

Modify: 2018-03-29 23:59:49.106000000 -0400

Change: 2018-03-29 23:59:49.106000000 -0400

 Birth: -

[root@linuxtechi ~]#

 

 

به همین روش می توان زمان اصلاح یک دایرکتوری را تغییر داد:

 [root@linuxtechi ~]# touch -m /mnt/nfsshare/

[root@linuxtechi ~]#

 

 

مثال ششم: تغییر زمان دسترسی و زمان اصلاح در یک مرحله

به کمک گزینه “-am” در دستور Touch می توانید این زمان ها را با هم تغییر دهید:

 [root@linuxtechi ~]# touch -am devops.txt

[root@linuxtechi ~]#

 

 

حالا این موضوع را به کمک دستور زیر تایید کنید:

 [root@linuxtechi ~]# stat devops.txt

  File: ‘devops.txt’

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 67324178    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2018-03-30 00:06:20.145000000 -0400

Modify: 2018-03-30 00:06:20.145000000 -0400

Change: 2018-03-30 00:06:20.145000000 -0400

 Birth: -

[root@linuxtechi ~]#

 

 

مثال هفتم: تنظیم زمان دسترسی و اصلاح برای یک زمان و تاریخ خاص

زمانی که زمان دسترسی و اصلاح یک فایل یا دایرکتوری را به کمک دستور تاچ عوض می کنیم، این دستور از زمان فعلی برای زمان دسترسی و اصلاح استفاده می کند.فرض کنید می خواهید زمان و تاریخ خاصی را به فایل یا دایرکتوری اختصاص دهید. برای اینکار می توانید از گزینه های ‘-c’ و ‘-t’ در دستور تاچ استفاده کنید. زمان و تاریخ باید به فرمت زیر تعیین شوند:

{CCYY}MMDDhhmm.ss

که در آن:

  • cc: دو رقم اول سال
  • yy: دو رقم دوم ماه
  • mm: ماه سال
  • dd: روز ماه
  • hh: ساعت روز
  • mm: دقایق ساعت

خوب حالا فرض کنید می خواهیم زمان دسترسی و اصلاح فایل devops.txt را برای سال 2025، ماه دهم، 19 ام ماه، ساعت 18 ام و دقیقه 20 ام تنظیم کنیم.

 [root@linuxtechi ~]# touch -c -t 202510191820 devops.txt

 

از دستور stat استفاده کنید تا ببینید زمان دسترسی و اصلاح به روز شده است یا خیر. به مثال زیر توجه کنید. در این مثال زمان دسترسی و اصلاح  بر اساس تاریخ و به کمک دستور -d تعیین شده است:

 [root@linuxtechi ~]# touch -c -d "2010-02-07 20:15:12.000000000 +0530" sysadm-29.txt

[root@linuxtechi ~]#

 

 

وضعیت این زمانبندی را به کمک دستور زیر تایید کنید:

 [root@linuxtechi ~]# stat sysadm-20.txt

  File: ‘sysadm-20.txt’

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 67324189    Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Context: unconfined_u:object_r:admin_home_t:s0

Access: 2010-02-07 20:15:12.000000000 +0530

Modify: 2010-02-07 20:15:12.000000000 +0530

Change: 2018-03-30 10:23:31.584000000 +0530

 Birth: -

[root@linuxtechi ~]#

 

 

نکته:  اگر در دستور بالا، گزینه -c را مشخص نکرده بودیم، دستور تاچ یک فایل جدید ایجاد می کرد و timestamp را هر آن چیزی که در دستور ذکر شده بود بر می گزید.

 مثال هشتم: تنظیم timestamp فایل به کمک دستور تاچ

بهتر است بدانید که در دستور تاچ می توان از فایل رفرنس برای تنظیمtimestamp فایل یا دایرکتوری استفاده کرد. مثلا فرض کنید می خواهید  timestamp  فایل sysadm-20.txt را بر روی فایل devops.txt اعمال کنید. اینکار را می توان به کمک گزینه -r در دستور تاچ انجام داد.

 

سینتکس: # touch -r {reference-file} actual-file

[root@linuxtechi ~]# touch -r sysadm-20.txt devops.txt

[root@linuxtechi ~]#



 

مثال نهم: تغییر زمان دسترسی و اصلاح بر روی فایل لینک نمادین

به طور پیش فرض، هر وقت بخواهید timestamp فایل لینک نمادین را به کمک دستور تاچ تغییر دهید،  تنها timestamp فایل اصلی تغییر خواهد کرد . اگر بخواهید timestamp فایل لینک نمادین را تغییر دهید می توانید از گزینه -h در دستور تاچ استفاده کنید.

سینتکس: # touch -h {symbolic link file}

 

[root@linuxtechi opt]# ls -l /root/linuxgeeks.txt

lrwxrwxrwx. 1 root root 15 Mar 30 10:56 /root/linuxgeeks.txt -> linuxadmins.txt

[root@linuxtechi ~]# touch -t 203010191820 -h linuxgeeks.txt

[root@linuxtechi ~]# ls -l linuxgeeks.txt

lrwxrwxrwx. 1 root root 15 Oct 19  2030 linuxgeeks.txt -> linuxadmins.txt

[root@linuxtechi ~]#

 

Rate this post
برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن