کار با فایل ها در لینوکس – مقدمه
در این بخش از سری آموزش های لینوکس برای برنامه نویسان، به بررسی مهم ترین دستورات کار با فایل ها در لینوکس خواهیم پرداخت.
در این بخش می خواهیم به تشریح دستورات پرکاربرد کار کردن با فایل ها و دایرکتوری ها در لینوکس بپردازیم.
همان طور که می دانید، همه چیز در لینوکس فایل است. بنابراین کار کردن با فایل ها و آشنایی با دستورات آن، از اولین بخش های یادگیری لینوکس برای هر برنامه نویس می باشد.
در ابتدا به بررسی دستورات عمومی در زمینه کار با فایل ها در ترمینال لینوکس می پردازیم. همین طور دستورات مرتبط با لیست کردن فایل ها و دایرکتوری ها را مورد بررسی قرار می دهیم.
سپس در مورد نحوه ساخت فایل ها و دایرکتوری ها، کپی کردن ،انتقال، پاک کردن و عوض کردن نام فایل ها و دایرکتوری ها، خواهیم پرداخت.
در قسمت آخر نیز در مورد نحوه فشرده سازی فایل ها در لینوکس و همین طور extract کردن فایل ها در لینوکس صحبت خواهیم کرد.
این آموزش، یکی از بخش های سری آموزشی لینوکس برای برنامه نویسان در سایت وبمستر وردپرس می باشد. در صورتی که می خواهید به کلیه بخش های این سری آموزشی رایگان دسترسی داشته باشید، می توانید از لینک زیر استفاده کنید:
دستورات پر کاربرد لینوکس برای لیست کردن نمایش فایل ها و دایرکتوری ها
برای اجرای دستورات زیر، می باید آن ها در ترمینال توزیع لینوکسی که استفاده می کنید، وارد نمایید. ما برای اجرای دستورات از bash استفاده می کنیم.
Shell در لینوکس چیست؟ bash چیست؟
برای دسترسی به هسته لینوکس یا kernel لینوکس، می باید از shell استفاده کنیم. ترمینال در لینوکس، نرم افزای است که شل را اجرا می کند. bash نیز نوعی از shell می باشد.
#change directory command using relative address mehdi@mehdi-pc:~$ cd .. #Up one level in directory with relative address mehdi@mehdi-pc:/home$ cd .. #List current directory mehdi@mehdi-pc:/$ ls . bin dev initrd.img lib32 media proc sbin sys var boot etc initrd.img.old lib64 mnt root snap tmp vmlinuz cdrom home lib lost+found opt run srv usr vmlinuz.old #Show current location (where we are) mehdi@mehdi-pc:/$ pwd / #Change directory with absolute address mehdi@mehdi-pc:/$ cd /home/mehdi/ mehdi@mehdi-pc:~$ pwd /home/mehdi #List directory with -l switch mehdi@mehdi-pc:~$ ls -l total 60 drwxr-xr-x 5 mehdi mehdi 4096 Jan 12 08:50 Desktop drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Documents drwxr-xr-x 4 mehdi mehdi 4096 Jan 7 23:02 Downloads -rw-r--r-- 1 mehdi mehdi 8980 Oct 29 18:20 examples.desktop drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Music -rw------- 1 mehdi mehdi 3168 Jan 6 11:10 nohup.out drwxr-xr-x 3 mehdi mehdi 4096 Jan 5 10:13 PhpstormProjects drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Pictures drwxr-xr-x 2 mehdi mehdi 4096 Nov 8 02:02 playlist drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Public drwxr-xr-x 7 mehdi mehdi 4096 Dec 11 10:14 snap lrwxrwxrwx 1 root root 31 Dec 23 08:39 Tehran -> /usr/share/zoneinfo/Asia/Tehran drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Templates drwxr-xr-x 2 mehdi mehdi 4096 Oct 29 18:24 Videos #List directory with -lh switch mehdi@mehdi-pc:~/Desktop$ ls -lh total 168K -rw-r--r-- 1 mehdi mehdi 284 Nov 22 00:57 gholaydoon.tar.gz drwxrwxr-x 2 mehdi mehdi 4.0K Dec 23 22:37 keys -rw-r--r-- 1 mehdi mehdi 99K Dec 15 07:53 lshw.html drwxr-xr-x 5 mehdi mehdi 4.0K Jan 6 09:40 mehdi drwxr-xr-x 2 mehdi mehdi 4.0K Dec 24 19:48 msndownloads -rw-rw-r-- 1 mehdi mehdi 36K Jan 12 08:50 nurses-day-poem.jpg -rw-r--r-- 1 mehdi mehdi 2.2K Jan 5 12:46 settings.zip -rwxr-xr-x 1 mehdi mehdi 205 Nov 9 03:11 Skype.desktop -rwxr-xr-x 1 mehdi mehdi 195 Nov 9 03:14 vlc.desktop #List directory with -a switch mehdi@mehdi-pc:~/Desktop/mehdi$ ls -a . dir1 for.sh gholam.txt index.php new_gholam.txt read.sh while.sh .. dir2 _gholam.txt hello.sh .mehdi_hidden permission.txt test2 #Change to home user directory with Tilda sign (~) mehdi@mehdi-pc:~/Desktop/mehdi$ cd ~ mehdi@mehdi-pc:~$
نمایش فایل ها، ویرایش فایل ها، ساخت فایل ها و دایرکتوری ها در لینوکس
در این بخش با دستورات پرکاربرد در زمینه نمایش فایل ها آشنا می شوی. همچنین می آموزیم که ویرایش فایل ها در لینوکس چگونه انجام می شود. در انتها با ساخت فایل ها و دایرکتوری ها در لینوکس آشنا می گردیم.
نکته در مورد اجرای دستورات لینوکس با Permission مورد نیاز
بسیاری از دستورات در لینوکس، نیاز به حق دسترسی یا permission کاربر خاص یا کاربر root را دارند. برای انجام دستوراتی که در آن نیاز به permission با کاربر root می باشد، کافی است در ابتدای هر دستور از کلمه sudo استفاده نماییم.
نکته مهم در فرستادن چندین پارامتر به دستور های mkdir و همین طور touch
در نظر داشته باشید که شما می توانید به همراه دستور های mkdir و همین طور touch ، از چندین پارامتر مختلف استفاده می کند. این باعث می شود که چندین دایرکتوری یا فایل، توسط این دستورات ساخته شوند.
show file with sudo command $ sudo cat permission.txt [sudo] password for mehdi: This is a test to save file from Mehdi with related permissions #show file page by page with less command $ less gholam.txt #create a file with touch command $ touch new_mehdi_file.txt $ ls dir1 for.sh gholam.txt index.php new_mehdi_file.txt read.sh while.sh dir2 _gholam.txt hello.sh new_gholam.txt permission.txt test2 #create a hidden file with touch command $ touch .new_mehdi_file.txt $ ls -a . dir1 for.sh gholam.txt index.php new_gholam.txt new_mehdi_file.txt read.sh while.sh .. dir2 _gholam.txt hello.sh .mehdi_hidden .new_mehdi_file.txt permission.txt test2 #create directory with mkdir command $ mkdir test1 $ ls dir1 for.sh gholam.txt index.php new_mehdi_file.txt read.sh test2 dir2 _gholam.txt hello.sh new_gholam.txt permission.txt test1 while.sh #create directory recursively $ mkdir -p test3/test1/test3 $ cd test3/test1/test3/ mehdi@mehdi-pc:~/Desktop/mehdi/test3/test1/test3$ #edit file with nano editor mehdi@mehdi-pc:~$ nano msn.txt #show last 10 lines in a file $ tail index.php #show last 2 lines in a file $ tail -n 2 index.php
کپی فایل ها و دایرکتوری ها، انتقال و پاک کردن و تغییر نام فایل ها و دایرکتوری در لینوکس
در این بخش می خواهیم با عملیات های بسیار رایج در سیستم عامل آشنا شویم. در ابتدا با کپی کردن فایل ها در لینوکس آشنا می شویم. سپس نحوه کپی کردن دایرکتوری ها در لینوکس را مورد بررسی قرار می دهیم.
پس از آن نحوه انتقال فایل ها یا همان move کردن فایل ها را مورد بررسی قرار می دهیم. سپس می آموزیم که چگونه می توانیم یک دایرکتوری را در لینوکس انتقال دهیم. در انتها نیز با نحوه پاک کردن یک دایرکتوری در لینوکس آشنا می شویم.
در انتها نیز با نحوه تغییر نام دادن یک فایل در لینوکس آشنا می شویم.
نکته مهم در overwrite شدن توسط دستورات mv و همین طور cp
در نظر داشته باشید در صورتی که یک فایل یا دایرکتوری هم نام در مسیر مقصد وجود داشته باشد، توسط دستور های mv و cp مورد بازنویسی قرار خواهند گرفت. (یا overwrite خواهند شد)
بنابراین در صورتی که از نبودن یک فایل هم نام در انجام عملیات انتقال مطمئن نیستید، حتما از سوئیچ i- به همراه این دستورات استفاده کنید. استفاده از این سوئیچ باعث می شود تا در هنگام عملیات انتقال یا کپی کردن فایل ها، اخطاری مبنی بر وجود داشتن فایل یا دایرکتوری هم نام به شما داده شود.
در ادامه می توانید برخی از دستورات مرتبط با این بخش را ملاحظه فرمایید:
#move source to destination $ sudo mv source_file destination_directory #move source to destination with asking for overwriting $ sudo mv -i source_file destination_directory #rename a file or directory $ sudo mv source_file new_name_for_source_file $ sudo mv source_directory new_name_for_source_directory #copy source to destination $ cp source_file destination_file $ cp source_file destination_directory #copy source to destination recursively with root access $ sudo cp source_directory destination_directory -r $ sudo cp -r source_directory destination_directory #copy source to destination with asking for overwriting $ sudo cp -i source_file destination_directory #remove a file with root permission $ sudo rm your_file #remove a directory with root permission that have some files or directories on it $ sudo rm -r desire_directory #remove a directory with root permission that have no files or directories on it $ sudo rmdir desire_directory #remove a directory with root permission that have some files or directories on it $ sudo rmdir --ignore-fail-on-non-empty desire_directory
دستورات فشرده سازی فایل ها و دایرکتوری ها و extract کردن آن ها در لینوکس
یکی دیگر از کارهای عمومی و روزمره که می باید با سیستم عامل انجام داد، فشرده سازی فایل ها یا فشرده سازی دایرکتوری ها در لینوکس می باشد.
همین طور در بسیاری از موارد نیز نیاز داریم تا فایل های داخل یک فایل فشرده را استخراج کرده یا extract نماییم. برای این کار دستورات زیر وجود دارد که می توانید استفاده کنید:
در ادامه چند مثال کاربردی در مورد فشرده سازی با دستور tar در لینوکس آورده شده است. همین طور می توانید دستورات مرتبط با extract فایل های فشرده در لینوکس را ملاحظه فرمایید:
#Tar options c – create a archive file. x – extract a archive file. v – show the progress of archive file. f – filename of archive file. t – viewing content of archive file. j – filter archive through bzip2. z – filter archive through gzip. r – append or update files or directories to existing archive file. W – Verify a archive file. #Compress with tar format $ tar -cf name-of-archive.tar.gz /path/to/directory-or-file #Compress with tar format and seeing the progress in termianl $ tar -cvf name-of-archive.tar.gz /path/to/directory-or-file #Compress with tar.gz format and seeing all of progress in terminal $ tar -czvf name-of-archive.tar.gz /path/to/directory-or-file #Compress multiple directories or files at once $ tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt #Exclude directories or files $ tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache $ tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4 #Compress with bzip2 format $ tar -cjvf archive.tar.bz2 stuff #Extract tar archive file $ tar -xvf msn_sample.tar #Extract tar.gz archive file $ tar -xvf msn_sample.tar.gz #Extract tar.gz archive file to a specific destination $ tar -xvf msn_sample.tar.gz -C your_directory_to_extract #List content of tar archive file $ tar -tvf uploadprogress.tar #Extract single file from tar file $ tar -xvf cleanfiles.sh.tar cleanfiles.sh OR $ tar --extract --file=cleanfiles.sh.tar cleanfiles.sh #Extract single file from tar.gz file $ tar -zxvf cleanfiles.sh.tar.gz cleanfiles.sh OR $ tar --extract --file=cleanfiles.sh.tar.gz cleanfiles.sh #Extract group of files using wildcard $ tar -xvf Phpfiles-org.tar --wildcards '*.php' $ tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php' $ tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php' #Add files or directories to tar or tar.gz archive file $ tar -rvf tecmint-14-09-12.tar xyz.txt $ tar -rvf tecmint-14-09-12.tar php #Check the size of archive file $ tar -czf - msn_sample.tar | wc -c ۴۲۵۲۰۴۸۰ $ tar -czf - msn_folder.tar.gz | wc -c ۲۲۲۶۴۰ $ tar -czf - msn_files.tar.bz2 | wc -c ۳۰۶۸۰
آشنایی با چندین دستور بسیار پرکاربرد در لینوکس
در این بخش می خواهیم با چند دستور بسیار کاربرد در لینوکس آشنا شویم. لیست این دستورات به شرح زیر می باشند:
#Show current user in termianl $ whoami mehdi #Show last 20 commands that were entered in terminal $ history 20 #Reboot a system $ sudo init 6 $ sudo reboot #Reboot after 1 minute $ sudo shutdown -r #Reboot system immediately $ sudo shutdown -r now #Shutdown system after 1 minute $ sudo shutdown #Shutdown system after 90 minute $ sudo shutdown +90 #Shutdown system immediately $ sudo shutdown now #Create a soft link for a excutable file $ ln -s address_of_file_that_you_want_to_create_soft_link destination #Show linux distribution specifications $ cat /etc/lsb-release #Show linux kernel version $ uname -a #Show file extension specification $ file your_file_name #Show system cpu specifications $ cat /proc/cpuinfo </pre>
نتیجه گیری برای مقاله کار با فایل سیستم در لینوکس
در این سری از آموزش های لینوکس، ما به بررسی دستورات مورد نیاز برای کار با فایل ها و دایرکتوری ها در لینوکس پرداختیم. در واقع در این مقاله سعی کردیم تا پر کاربردترین دستورات مرتبط با فایل سیستم لینوکس را به صورت خلاصه تشریح کنیم.
در بخش اول، در مورد دستورات کاربردی در مورد لیست کردن فایل ها و دایرکتوری ها صحبت کردیم. در بخش دوم، دستورات مرتبط با نمایش فایل ها، ویرایش آن ها و همین طور ساخت فایل ها و دایرکتوری ها بررسی نمودیم.
در بخش سوم با انجام کپی کردن، انتقال و تغییر نام فایل ها و دایرکتوری ها در لینوکس آشنا شدیم. در بخش چهارم نیز، دستورات فشرده سازی فایل ها و دایرکتوری ها و همین طور با نحوه extract کردن فایل های archive در لینوکس، آشنا گشتیم.
ممکن است شما با موارد بیشتری در این حوزه آشنا باشید، که ما فراموش کرده ایم تا آن ها را در این مقاله قرار دهیم.
اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله “کار با فایل ها و دایرکتوری ها در لینوکس” اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.
راهنما برای مطالعه بیشتر:
برای تولید مقاله کار با فایل ها و دایرکتوری های در لینوکس، از لینک های زیر استفاده شده است که برای مطالعه بیشتر، می توانید به آن ها مراجعه کنید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
مطالب خوبی بود،،من یک سوال داشتم،،اگه شخصی گوشی روهک کنه،وگوشی شما به صورت مجازی ساز بشه،شما باتنظیمات کارخانه هم گوشی رو نتونی برگردونی ،چه کاری انجام میدی که گوشیتون از هک دربیاد،،درضمن اکثر راههای میرسه به( permission dane,),ممنون میشم کمکم کنید با دستور rm هم خواستم پاک کنم.نشد،،شما اگه راه اینکه من گوشیم از حالت مجازی خارج بشه ،،بگید ممنون میشم،،
سلام
متاسفانه من اطلاعی از این مورد ندارم
سلام روز بخیر
مقاله خیلی کاملی بود
تشکر و آرزوی موفقیت.
سلام به شما دوست عزیز،
از شما بسیار ممنون و سپاسگزارم که وقت ارزشمند خودتون رو گذاشتید تا پیام های محبت آمیز برای ما ارسال کنید.
باعث افتخار است که این مقاله مورد قبول شما واقع شده است.
نظرات دلگرم کننده شما باعث ادامه این راه توسط تیم ما خواهد شد.
سپاس فراوان
سلام یه سوال داشتم ممنون میشم راهنمایی کنید وقتی یک فایل حجیم رو با دستور
wget
دانلود میکنیم، اون فایل دقیقا کجا ذخیره میشه؟ مثلا اگه بخام روی ساب دامنه
dl.user.com
ذخیره بشه باید چکار کنم؟ الان چند گیگ فایل روی سرور دانلود کردم، حجم اشغال شده اما متاسفانه تو مدیریت فایل رو زیر و – رو کردم اون فایل هارو پیدا نکردم! ممنون میشم راهنمایی کنید
سلام به شما دوست عزیز
در هر جایی که در خط فرمان، دستور رو اجرا کرده بودید، دقیقا در همانجا فایل ها ذخیره شده است.
عموما وقتی با ssh وصل می شوید، داخل دایرکتوری home مرتبط با user خود هستید. در این صورت، اگر دستور wget را در آنجا اجرا کرده باشید، فایل ها در آن جا می باشند.
حال در تنظیمات وب سرور خود، ببینید که محل ذخیره سازی فایل های خود برای virtual host تعریف شده را، در کجا تعریف کرده اید. می توانید به آن محل رفته و سپس دستور wget را در حالی که در آن مسیر قرار دارید، اجرا کنید تا فایل ها در آن محل ذخیره گردند.
امیدوارم با این توضیحات، مشکل شما حل شده باشد.