۹ نمونه مفید دستورات لینوکس

ترمینال محیط خط فرمان لینوکس است و در این نوشته ۹ نمونه مفید دستورات لینوکس را همراه با نمونه مفید و عملی یاد بگیرید.

دستور touch (لمسی) لینوکس

دستور touch در لینوکس برای تغییر زمانبندی فایل استفاده می شود اما یکی از رایج ترین کاربردهای دستور touch شامل ایجاد یک پرونده خالی جدید است.

با استفاده از دستور touch، می توانید دسترسی، تغییر و تغییر زمان پرونده ها و پوشه ها را در لینوکس تغییر دهید. شما می توانید برچسب زمانی (timestamps) را به روز کنید یا آنها را به یک تاریخ در گذشته تغییر دهید.

نحو دستور touch بسیار ساده است:

touch [option] file

 

زمان بندی دوباره فایلها در لینوکس چیست؟

  • access time – آخرین بار زمانی که یک پرونده دسترسی داشت
  • modify time – آخرین بار زمانی که یک پرونده اصلاح شد
  • change time – آخرین بار زمانی که ابرداده پرونده (مجوز فایل، مالکیت و غیره) تغییر یافت

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

stat abhi.txt 
  File: abhi.txt
  Size: 10        	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11940163    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 14:12:24.476483367 +0530
Modify: 2018-09-02 14:12:24.476483367 +0530
Change: 2018-09-02 14:12:24.476483367 +0530
 Birth: -

 

9 نمونه عملی از دستور touch (لمسی) در لینوکس

۱. یک پرونده خالی ایجاد کنید

این شایع ترین استفاده از دستور touch است. همه چیزهایی که باید انجام دهید این است که از touch با نام پرونده استفاده کنید.

touch <filename>

اگر پرونده وجود ندارد، یک پرونده خالی ایجاد خواهد شد.

touch empty_file
ls -l empty_file 
-rw-r--r-- 1 abhishek abhishek 0 Sep  2 14:37 empty_file

اما اگر پرونده در حال حاضر وجود داشته باشد چه؟ در این مورد، تمام سه نشانه زمانی پرونده را به زمان فعلی به روز می کند.

۲. ایجاد چند پرونده خالی

شما می توانید از دستور touch برای ایجاد بیش از یک پرونده خالی نیز استفاده کنید. فقط اسامی پرونده هایی را که می خواهید ایجاد کنید، ارائه کنید.

touch <file1> <file2> <file3>

اگر فکر می کنید همه نامهای پرونده را بنویسید، می توانید نام پرونده های خود را به صورت خودکار ایجاد کنید:

touch new-file-{1..10}.txt

به ترتیب پرونده های new-file-1.txt, new-file-2.txt الی new-file-10.txt ایجاد شد.

۳. جلوگیری از ایجاد پرونده با touch یا نبود پرونده خالی

touch نشانگرهای زمانی پرونده ورودی را در صورت وجود touch می کند و اگر پرونده ورودی وجود ندارد، یک پرونده خالی ایجاد می کند.

اما اگر نمی خواهید یک پرونده خالی جدید ایجاد کنید, شما می خواهید آن را به روز رسانی نشانه های پرونده, اما اگر پرونده وجود ندارد، آن را نباید ایجاد شود.

شما می توانید از دستور touch با گزینه -c در موارد زیر استفاده کنید:

touch -c <filename>

به یاد داشته باشید: touch یک پرونده خالی جدید ایجاد می کند اگر آن وجود ندارد، نشانه های زمانی پرونده موجود را تغییر خواهد داد. شما می توانید ایجاد یک پرونده جدید را با گزینه -c متوقف کنید.

۴. تغییر تمام برچسب زمانی (timestamps) یک پرونده

اگر در یک پرونده موجود از دستور touch استفاده کنید، به تغییر، اصلاح و تغییر زمان آن پرونده کمک خواهد کرد.

برای مثال، من این پرونده را به نام sherlock.txt با برچسب زمانی زیر ایجاد کردم:

stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-08-25 09:44:56.092937000 +0530
Modify: 2018-08-09 09:41:05.028309000 +0530
Change: 2018-08-25 09:44:56.096937182 +0530

اگر از این دستور touch استفاده کنم، تمام برچسب های زمانی به برچسب های فعلی تغییر خواهند کرد.

touch sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:22:47.017037942 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:22:47.017037942 +0530
 Birth: -

توجه: شما نباید با ctime (زمان تغییر) ناراحت باشید. این یک ویژگی سیستم است و نمی تواند / نباید توسط کاربر کنترل شود. تمرکز شما باید بر روی دسترسی و تغییر زمان باشد.

۵. به روز رسانی زمان دسترسی پرونده

شما همیشه نمی توانید تمام برچسب های زمانی یک پرونده را تغییر دهید. اگر فقط می خواهید زمان دسترسی یک پرونده را تغییر دهید، می توانید از گزینه -a با دستور touch استفاده کنید.

touch -a sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:29:08.796926093 +0530
 Birth: -

۶. به روز رسانی تغییر زمان پرونده

اگر فقط می خواهید زمان تغییر یک پرونده را به زمان تایید فعلی به روز کنید، از گزینه -m از دستور touch استفاده کنید.

touch -m sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:31:25.770866881 +0530
Change: 2018-09-02 15:31:25.770866881 +0530
 Birth: -

7. استفاده از برچسب های زمانی دیگری از پرونده دیگر

شما همچنین می توانید از برچسب های زمانی دیگری از پرونده دیگری به عنوان مرجع با گزینه -r به روش زیر استفاده کنید:

touch -r <source_file> <target_file>

این زمان دسترسی و تغییر زمان پرونده هدف به همان اندازه دسترسی و تغییر زمان پرونده منبع را تعیین می کند.

8. تنظیم زمان دسترسی و تغییر خاص

ممکن است متوجه شده باشید که تقریبا در همه موارد (به استثنای پرونده مرجع یک)، برچسب های زمانی به برچسب زمان فعلی تغییر می کنند.

اما شما با آن ارتباطی ندارید touch اجازه می دهد تا شما را به زمان دسترسی و اصلاح به تاریخ گذشته و یا آینده تنظیم کنید. می توانید از گزینه -t و برچسب زمانی در فرمت زیر استفاده کنید:

[[CC]YY]MMDDhhmm[.ss]

  • CC – دو رقم اول سال
  • YY – دومین رقم یک سال
  • MM – ماه سال (01-12)
  • DD – روز ماه (01-31)
  • hh – ساعت روز (00-23)
  • mm – دقیقه ساعت (00-59)
  • ss – ثانیه (00-59)

در مورد فوق، CC اختیاری است. در حقیقت، CCYY نیز اختیاری است؛ در سال جاری، در این مورد، سال جاری است. به طور مشابه، ثانیه نیز اختیاری است، و پیش فرض به 00 است.

اجازه دهید یک مثال بزنم که با تغییر تاریخ تایمر به 12021301 یعنی 12 ماه، دوم، ساعت 13 و دقیقه اول سال جاری:

touch -t 12021301 agatha.txt 
stat agatha.txt 
  File: agatha.txt
  Size: 457       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928279    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-12-02 13:01:00.000000000 +0530
Modify: 2018-12-02 13:01:00.000000000 +0530
Change: 2018-09-02 15:59:47.588680901 +0530
 Birth: -

اگر سعی کنید یک تاریخ نامعتبر را وارد کنید، یک خطا خواهید دید. متوجه خواهید شد که زمان تغییر از لحاظ زمان فعلی استفاده شده است، نه همان دسترسی و اصلاح آن. این دلیل آن است که مالکیت سیستم است.

۹. تغییر برچسب زمانی یک تارنما نمادین

شما همچنین می توانید از دستورات touch با تارنما های نمادین استفاده کنید.فقط باید از گزینه -h در هنگام برخورد با تارنما های نمادین استفاده کنید. بقیه همانند پرونده های معمولی باقی می مانند.

touch -h <symbolic_link>

لینک : https://linuxhandbook.com/touch-command/

پاسخی بگذارید

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