در یونیکس ها همه چیز از دایرکتوری ها و device های سخت افزاری تا فایل های پیکربندی, فایل هستند. هر فایل دارای سه مشخصه: last access time, last modification و last change time است. وقتیکه یک فایل را ایجاد میکنید. یا تغییر دهید timestamps آن فایل بروز میشود. یکی از کاربردهای دستور touch ایجاد یک فایل خالی است. با استفاده از touch همچنین میتوانیم timestamps یک فایل را نیز تغییر دهیم.
اما کاربرد اصلی دستور touch برای تغییر timestamps فایل هاست. دستور touch دارای سوئیچ های زیر است:
در ادامه بعضی از مهمترین کاربردهای دستور touch را با ذکر مثال بیان میکنیم:
با فرمت زیر یک فایل خالی (صفر بایت) تحت مجوز تعیین شده توسط umask ایجاد میشود.
touch <file_name>
برای مثال:
touch file1
همچنین برای ایجاد چند فایل بصورت یکجا از دستور زیر میتوان استفاده کرد
touch <file_name1> ... <file_name2> <file_name3>
برای مثال:
touch lpic1 lpic2 lpic3
ابتدا با دستور زیر یک فایل ایجاد کنید و سپس با دومین دستور زمان ایجاد فایل مشاهده نمایید که در چه زمانی ایجاد شده است.
touch filestamp ls -l filestamp
خروجی دستور:
-rw-rw-r--. 1 phoenix phoenix 0 Nov 19 19:29 filestamp
فایل در ساعت ۱۹:۵۵ دقیقه در ۱۹ نوامبر ۲۰۱۷ ساخته شد. با یک ویرایشگر متنی فایل را ویرایش و داخل آن چیزی را وارد کنید.
vi filestamp
دوباره دستور ls -l filestamp
را اجرا کنید تا ببینید که زمان تغییر کرده است.
-rw-rw-r--. 1 phoenix phoenix 6 Nov 19 19:32 filestamp
با استفاده از سوئیچ a- و بصورت زیر یک فایل به نام filestamp2 ایجاد میکنیم که زمان آخرین دسترسی و تغییر آن, زمان فعلی است.
touch -a filestamp2
خروجی دستور:
-rw-rw-r--. 1 phoenix phoenix 0 Nov 19 19:36 filestamp2
برای تغییر آخرین زمان تغییر به زمان فعلی از سوئیچ m- استفاده میکنیم بطور مثال آخرین زمان تغییر فایل filestamp2 در بالا ۱۹:۳۶ است که اگر دستور زیر را اجرا کنیم این زمان به زمان فعلی تغییر میکند.
touch -m filestamp2
خروجی دستور:
-rw-rw-r--. 1 phoenix phoenix 0 Nov 19 19:40 filestamp2
سوئیچ c- به همراه دستور touch از یک فایلهای جدید جلوگیری میکند. برای مثال دستور یک فایل جدید به نام lpic1 ایجاد نمیکند حتی اگر چنین فالی وجود نداشته باشد.
touch -c lpic1
اگر شما میخواهید فقط زمان یک فایل ( برای مثال فایل lpic2 ) را تغییر دهید میبایست از سوئیچ m- دستور touch استفاده نمایید. لطفا به این نکته دقت نمایید که زمان های آخرین تغییرات فایل آپدیت خواهند شد(نه زمان های دسترسی)
touch -m lpic2
با فرمت زیر و استفاده از سوئیچ های c- و t- میتوانید یک فایل با زمان تعیین شده خودتان ایجاد کنید.
toch -c -t MMDDHHMM lpic2
بطور مثال برای ساعت ۱۷:۳۰ روز ۱۰ اکتبر ۲۰۱۷ دستور زیر را ایجاد میکند.
touch -c -t 12101730 lpic2
حال جهت بررسی زمان دسترسی و تغییر فایل lpic2 از دستور زیر استفاده نمایید:
ls -l
خروجی دستور:
-rw-rw-r--. 1 phoenix phoenix 0 Dec 10 2017 lpic2
با استفاده از سوئیچ r- زمان timestamp فایل sfile را به dfile اختصاص می دهیم.
touch -r sfile dfile
سپس دستور زیر را اجرا کنید تا زمان ها را که یکی هستند مشاهده نمایید.
ls -l dfile sfile
خروجی:
-rw-rw-r--. 1 phoenix phoenix 0 Nov 19 20:01 dfile -rw-rw-r--. 1 phoenix phoenix 0 Nov 19 20:01 sfile
اگر شما میخواهید یک فایل با زمان مشخص از زمان جاری ایجاد نمایید. می بایست از فرمت کلی تاریخ به شکل زیر استفاده کنید.
touch -t YYMMDDHHMM.SS lpic1
برای مثال با استفاده از دستور touch به همراه سوئیچ t- یک فایل lpic1 با timestamp ی برابر ۱۸:۳۰:۵۵ بعدازظهر در روز ۱۰ دسامبر ۲۰۱۲ ایجاد میکنیم.
touch -t 201212101830.55 lpic1
سپس دستور زیر را اجرا کنید تا زمان ها را مشاهده نمایید.
ls -l lpic1
خروجی دستور:
-rw-rw-r--. 1 phoenix phoenix 0 Dec 10 2012 lpic1