Linux मध्ये move, rename आणि delete: mv, rm, rmdir, ls -l आणि hidden files
चला, सुरू करूया. Files आणि folders बनवता येतात, copy पण करता येतात. Laptop वर रोजची बाकीची कामं म्हणजे cut-paste, rename आणि delete. Server वर ही तिन्ही कामं दोन commands करतात: mv move आणि rename करतो, rm delete करतो. आज अंदाज न लावता file आणि folder कसे ओळखायचे, dot लावून file hide कशी करायची, आणि ते गूढ . आणि .. काय आहेत, हे पण बघूया. Server चालू ठेवा आणि प्रत्येक command माझ्यासोबत type करा.
या class मध्ये काय शिकणार
- आजचे practice folders, आणि
cdनंतरचा खरा prompt - Interview question: folder च्या फक्त आतलं copy करणं
mv= cut-paste: file folder मध्ये टाकायच्या चार पद्धतीmvने rename, त्याच folder मध्ये आणि subfolder मध्ये- Folders move करणं, आणि
mvला-rका लागत नाही (same disk vs दुसरी disk) mvसोबत wildcards, आणि गुपचूप होणारं overwrite (mv -i)- Delete:
rm,rm -r,rmdirआणिrm -i - Practice task: एकाच tree वर mv, cp आणि rm
- Smart काम: relative paths, braces आणि Tab
- File की folder? नाव आणि colour वरून ठरत नाही
ls -l: पहिलं character- Commands चा summary
- Hidden files,
ls -a, आणि.व.. - निघण्याआधी: terminate की stop
- घरी करायचे tasks
1. आजचे practice folders
का. Move आणि delete करायला आधी काहीतरी हवं ना. आधी हे बनवून घ्या. Copy: Linux मध्ये copy: cp, cp -r, wildcards (* ?) आणि brace ranges; paths: Linux directories आणि paths.
कसं (home folder पासून सुरू करा). या ओळी एकेक करून चालवा:
cd
mkdir ravi raj
cd ravi
touch 1.txt 2.logs 3.mp3
mkdir one two three
cd
Classroom line
Say we're in ec2-user's home, and I've made two folders there: one called ravi, one called raj.
Class मधलं वाक्य
"Samja aapla ec2-user madhe ahe, tithe mi don folder banavle ahe. Suppose ek ravi mhanun folder ahe, ek raj mhanun folder ahe."
समजा आपण ec2-user मध्ये आहोत, तिथे मी दोन folders बनवले आहेत. समजा एक ravi नावाचा folder आहे, एक raj नावाचा folder आहे.
Classroom line
Say we're in ec2-user's home, and I've made two folders there: one called ravi, one called raj.
Prompt कडे लक्ष द्या. तो नेहमी सांगतो तुम्ही कुठे आहात. Amazon Linux 2023 वर तो असा दिसतो (ip-... हा तुमच्या server चा private hostname):
[ec2-user@ip-172-31-xx-xx ~]$ cd ravi
[ec2-user@ip-172-31-xx-xx ravi]$ cd
[ec2-user@ip-172-31-xx-xx ~]$
~म्हणजे तुम्ही home मध्ये आहात,/home/ec2-user.cd raviनंतर prompt मध्येraviदिसतं, म्हणजे current folder चं नाव.- नुसतं
cdकेलं की परत home, आणि~परत येतो.
Correction
Board वर cd ravi नंतरच्या प्रत्येक ओळीत ~] च लिहिलं होतं. खरा prompt तुमच्यासोबत बदलतो: तुम्ही ज्या folder मध्ये आहात त्याचं नाव दाखवतो, इथे ravi. प्रत्येक cd नंतर तो बघा, किंवा pwd चालवा.
2. Interview question: folder च्या फक्त आतलं copy करणं
का. "ravi चं आतलं सगळं raj मध्ये copy करा, folder नाही" हा interview मधला आवडता प्रश्न आहे. cp -r खरंच समजलाय का, ते यातून कळतं.
Classroom line
And they ask this question in interviews.
Class मधलं वाक्य
"ani he question interview madhe vichartat"
आणि हा question interview मध्ये विचारतात.
Classroom line
And they ask this question in interviews.
तीन प्रयत्न (home folder मधून):
cp ravi raj→cp: -r not specified; omitting directory 'ravi'. Folder ला-rलागतो.cp -r ravi raj→ चालतं, पण मिळतंraj/ravi/...: folder चrajमध्ये गेला.cp -r ravi/* raj→raj/1.txt,raj/2.logs,raj/3.mp3,raj/one... फक्त आतलं. हेच उत्तर त्यांना हवं असतं.
ravi/* म्हणजे "ravi मधलं प्रत्येक नाव". cp चालायच्या आधीच shell ते expand करतो, म्हणून cp ला दिसतं ravi/1.txt ravi/2.logs ravi/3.mp3 ravi/one ravi/three ravi/two raj.
पण एक गोम आहे: hidden files. Dot ने सुरू होणारी नावं * पकडत नाही (section 18). एक बनवा आणि परत try करा:
touch ravi/.notes
rm -r raj/*
cp -r ravi/* raj
ls -A raj
.notes नाहीये. Hidden files सकट सगळं copy करायचं असेल, तर folder चा स्वतःचा . copy करा:
cp -r ravi/. raj
Figure 1. cp -r ravi raj मध्ये folder च raj च्या आत जातो. cp -r ravi/* raj फक्त आतलं copy करतो पण hidden file .notes सोडून देतो. cp -r ravi/. raj आतलं सगळं, hidden files सकट, copy करतो.
Correction
Class मधलं उत्तर cp -r ravi/* raj नेहमीच्या files साठी बरोबर आहे, पण ravi/* hidden files सोडून देतो (dot ने सुरू होणारी नावं). cp -r ravi/. raj hidden files सकट ravi मधलं सगळं copy करतो.
3. mv: Linux चं cut-paste
का. Windows मध्ये file cut करून दुसरीकडे paste करतो; जुन्या जागेवरून ती गायब होते. Linux मध्ये हेच एका command ने.
Classroom line
mv means cut-paste. The cut-paste we use in Windows is what we now do in Linux.
Class मधलं वाक्य
"mv mhanje cut paste. Windows madhe apan je cut paste functionality kartoy, ti functionality ata aplyala Linux madhe karaychi ahe."
mv म्हणजे cut paste. Windows मध्ये आपण जी cut paste functionality वापरतो, ती functionality आता आपल्याला Linux मध्ये करायची आहे.
Classroom line
mv means cut-paste. The cut-paste we use in Windows is what we now do in Linux.
काय. mv SOURCE DESTINATION, cp सारखाच आकार. फरक एवढाच: mv नंतर source आधीच्या जागेवर उरत नाही.
कसं: my.txt ला ravi मध्ये टाकायच्या चार पद्धती. आधी home मध्ये touch my.txt ने file बनवा. प्रत्येक ओळ file तिथून हलवते, म्हणून पुढची ओळ try करायच्या आधी परत touch my.txt करा:
mv my.txt ravi→ravi/my.txtmv my.txt ravi/→ तेच; Tab दाबला की slash आपोआप येतो.mv my.txt ravi/my.txt→ तेच, नाव पूर्ण लिहून.mv my.txt ravi/you.txt→ move आणि rename:ravi/you.txt.
प्रत्येक वेळी check करा: ls (home मधून my.txt गेली) आणि ls ravi (ती इथे आहे).

Class board वरून: mv my.txt ravi: my.txt हा source, ravi हा destination. मग बाकीच्या तीन पद्धती: mv my.txt ravi/, mv my.txt ravi/my.txt, आणि mv my.txt ravi/you.txt, जी file rename पण करते.
4. mv ने rename
का. रोजच्या कामासाठी Linux मध्ये वेगळा rename command नाही. Rename म्हणजे त्याच जागी file ला नवीन नावावर move करणं.
Classroom line
mv is also the command for renaming.
Class मधलं वाक्य
"rename karnya sathi sudha mv command ahe."
rename करण्यासाठी सुद्धा mv command आहे.
Classroom line
mv is also the command for renaming.
कसं:
touch my.txtmv my.txt our.txtls→our.txt(आणिmy.txtनाही)
mv कसं ठरवतो:
- Destination आधीच असलेला folder → item त्याच्या आत जातो.
- Destination अस्तित्वातच नाही → item ला ते नाव मिळतं (rename).
- Destination आणि source एकच → करायला काहीच नाही.
Try करून बघा:
mv my.txt my.txt
mv: 'my.txt' and 'my.txt' are the same file
Figure 2. Animation: mv my.txt ravi file ला ravi मध्ये हलवतो; mv my.txt our.txt rename करतो; mv my.txt ravi/you.txt move आणि rename एकदम; mv ravi one अख्खा folder हलवतो, -r शिवाय.
5. Subfolder मध्ये rename, तिथे न जाता
का. Folder मधलं काही rename करायला त्या folder मध्ये cd करायची गरज नाही. दोन्ही नावं path म्हणून द्या.
कसं (तुम्ही /home/ec2-user मध्येच राहता):
mv ravi/1.txt ravi/2.txtls ravi→2.txtआहे,1.txtगेली.
दोन्ही paths एकाच folder मध्ये आहेत, म्हणून हे rename. दुसरा path दुसऱ्या folder मध्ये असता, तर move आणि rename झालं असतं.

Class board वरून: mv my.txt our.txt त्याच folder मध्ये rename करतो. उजवीकडे ec2-user, ravi, 1.txt हे tree: mv ravi/1.txt ravi/2.txt home न सोडता ravi मधली file rename करतो, आणि mv ravi one हा folder ravi ला one मध्ये हलवतो.
6. Folders move करणं: -r नाही
का. cp मध्ये folder ला -r लागतो. mv मध्ये लागत नाही. Interviewer "का?" विचारायच्या आधी हे माहीत असलेलं बरं.
कसं:
mkdir one(home मध्ये;raviआधीच आहे)mv ravi onels one→ravi, आतल्या सगळ्या गोष्टींसकट.
परत आणायला: mv one/ravi . (. = इथे).
Correction
Class मध्ये हा option "slash r" असा वाचला गेला. तो dash r आहे: hyphen, -r. Board वर बरोबर लिहिलं होतं. Slash म्हणजे path separator, जसं ravi/1.txt मध्ये.
7. mv ला -r का लागत नाही
का. हे समजलं की कळतं, मोठ्ठा folder mv करायला अजिबात वेळ का लागत नाही, आणि तोच folder cp करायला मिनिटं का लागू शकतात.
Classroom line
When we move, what really happens? Only the path changes. But when we copy, the file is actually stored again.
Class मधलं वाक्य
"apan move karto mhanje kay karto, fakta path change hotay. pan jyaveli apan copy karto na, tya vela te file kharokhar parat memory madhe store kelya jatyat."
आपण move करतो म्हणजे काय करतो, फक्त path change होतो. पण ज्या वेळी आपण copy करतो ना, त्या वेळी file खरोखर परत memory मध्ये store केल्या जातात.
Classroom line
When we move, what really happens? Only the path changes. But when we copy, the file is actually stored again.
Same disk वर काय होतं:
- File चा data disk वर blocks मध्ये असतो.
- Folder फक्त एक entry ठेवतो: नाव, आणि data कुठे आहे.
cpdata परत नवीन blocks मध्ये लिहितो, file by file. Folder असेल तर प्रत्येक folder च्या आत जावं लागतं:-rतेच सांगतो.mvdata ला हात लावत नाही, फक्त entry बदलतो: जुनं नाव जातं, नवीन path येतो. Folder एकाच step मध्ये अख्खा हलतो, म्हणून आत जायची (recurse) गरजच नाही.
दुसऱ्या disk वर (उदा. root volume वरून दुसऱ्या EBS volume वर), entry दुसऱ्या disk कडे point करू शकत नाही. म्हणून mv data दुसऱ्या disk वर copy करतो, मग original delete करतो. Copy एवढाच वेळ लागतो, आणि तरीही -r लागत नाही.
Figure 3. Animation: cp my.txt ravi data परत नवीन blocks मध्ये लिहितो आणि दुसरी entry जोडतो. Same disk वर mv my.txt ravi blocks ला हात न लावता फक्त entry बदलून ravi/my.txt करतो. दुसऱ्या disk वर mv आधी copy, मग delete करतो.
mv एक move नाकारतो, मागच्या chapter मधल्या cp सारख्याच कारणासाठी. mkdir -p one/two ने one/two बनवा, मग try करा:
mv one one/two
mv: cannot move 'one' to a subdirectory of itself, 'one/two/one'
Correction
Board वर हे "memory" boxes ने काढलं होतं. नेमकं सांगायचं तर ती disk आहे: same disk (filesystem) वर mv फक्त directory entry rename करतो, त्यामुळे data copy होत नाही. दुसऱ्या disk वर तो copy करतो आणि मग delete. दोन्हीकडे -r लागत नाही.
8. mv सोबत wildcards
का. cp सारखंच: प्रत्येक नाव type करण्याऐवजी pattern सांगा.
Classroom line
We can use wildcards while moving files or folders too.
Class मधलं वाक्य
File किंवा folder move करताना आपण wildcard पण वापरू शकतो.
Classroom line – हिंदी
"file ya folder move karte waqt hum log wildcard bhi use kar sakte hai"
कसं:
mv *.txt ravi→.txtने संपणारं प्रत्येक नावraviमध्ये जातं.mv 2.* ravi→2.logsआणि2.ने सुरू होणारं बाकी सगळं.- आधी बघून घ्या:
echo *.txtpattern काय पकडतो ते दाखवतो, काहीही move न करता.
* आणि ? चे नियम copy chapter मध्ये आहेत.
9. mv न विचारता overwrite करतो: mv -i
का. Destination file आधीच असेल तर mv ती replace करतो. ना प्रश्न, ना message, आणि जुनी file गेली.
होताना बघा:
echo old > b.txt
echo new > a.txt
mv a.txt b.txt
cat b.txt
Output: new. जुनी b.txt गेली, आणि a.txt आता नाहीच.
सुरक्षित पद्धत: mv -i आधी विचारतो:
mv -i a.txt b.txt
mv: overwrite 'b.txt'?
Replace करायला y, b.txt ठेवायला n.
Ravindra Bagale's Tip
आधीच files असलेल्या folder मध्ये files move करताना mv -i वापरा. एक n परत न मिळणारी file वाचवू शकतो.
10. rm: files delete करणं
का. जुने logs, test files, चुका. Server भरत जातात, आणि disk full झाली की सगळंच थांबतं.
कसं:
rm my.txt→ एक file.rm 1.txt my.mp3 3.logs→ एकदम अनेक files.rm *.txt→ इथली प्रत्येक.txtfile.rm file*→fileने सुरू होणारं प्रत्येक नाव.

Class board वरून: rm my.txt एक file delete करतो, rm 1.txt my.mp3 3.logs तीन, rm *.txt .txt ने संपणारं प्रत्येक नाव, आणि rm file* file ने सुरू होणारं प्रत्येक नाव.
माहीत असायला हवं:
- Recycle bin नाही. Delete म्हणजे गेलं.
ec2-userसाठीrmdelete करायच्या आधी विचारत नाही.- नसलेलं नाव:
rm: cannot remove 'nothere': No such file or directory. - नुसत्या
rmने folder delete होत नाही.
Folder वर try करून बघा:
rm ravi
rm: cannot remove 'ravi': Is a directory
11. rm -r: folder आणि आतलं सगळं delete
काय. rm -r ravi folder ravi, त्यातली प्रत्येक file, प्रत्येक folder, अगदी खालपर्यंत सगळं delete करतो. -r = recursive, cp -r सारखीच कल्पना.
कसं:
rm -r ravils→raviगेला.
प्रत्येक delete आधी विचारा:
rm -i my.txt
rm: remove regular empty file 'my.txt'?
Folder साठी -r सोबत वापरा:
rm -ri ravi
rm: descend into directory 'ravi'?
rm -ri आतल्या प्रत्येक file आणि folder साठी एकेक करून विचारतो. जे ठेवायचं त्याला कधीही n द्या.
Correction
Class मध्ये सांगितलं की एका file वर rm -r केलं तर CPU आणि RAM वाया जातात. तसं नाही; फरक जाणवण्याइतका पण नाही. सवयीने -r न टाकण्याचं खरं कारण safety आहे: -r असताना एक नाव चुकलं की Is a directory म्हणून थांबण्याऐवजी अख्खा folder delete होतो. Files साठी नुसता rm, folder म्हणायचं असेल तेव्हाच rm -r, आणि शंका असेल तर rm -i.
Ravindra Bagale's Tip
Wildcard सोबत rm करायच्या आधी तोच pattern ls ने चालवा: ls *.txt, मग rm *.txt. काय जाणार ते नक्की दिसतं. आणि कुठलीही rm -r ओळ Enter दाबायच्या आधी दोनदा वाचा. याबद्दल अजून 3.3 Working with files and directories मध्ये.
12. rmdir: फक्त रिकामे folders delete
का. rmdir हे safety net आहे. आत काही असेल तर तो folder delete करायला नकार देतो.
कसं:
mkdir emptyrmdir empty→ गेला, काही message नाही.rmdir my.txt→rmdir: failed to remove 'my.txt': Not a directory
आता आत files असलेला folder:
rmdir ravi
rmdir: failed to remove 'ravi': Directory not empty
Figure 4. rm files delete करतो पण folder ला Is a directory म्हणतो. rmdir फक्त रिकामे folders delete करतो, नाहीतर Not a directory किंवा Directory not empty म्हणतो. rm -r काहीही delete करतो, आतल्या सगळ्यासकट folder पण.
कुठला वापरायचा:
- File →
rm - रिकामा folder →
rmdir - आत गोष्टी असलेला folder →
rm -r(आणि दोनदा विचार करा)
13. Practice task: एकाच tree वर mv, cp आणि rm
Task. सगळं /home/ec2-user मधूनच करा; कुठेही cd करायचं नाही.
- एक folder
projects, त्यातweb, आणिwebमध्ये चार folders:frontend,backend,database,testing. webमध्ये, त्या चार folders च्या बाजूला, दोन files बनवा:notes.txtआणिreport.txt.notes.txtलाbackendमध्ये move करा.report.txtलाdatabaseमध्ये move करा.databaseमधलीreport.txttestingमध्ये copy करा.databaseमधलीreport.txtdelete करा.- शेवटी:
notes.txtफक्तbackendमध्ये,report.txtफक्तtestingमध्ये.
Classroom line
Do all the work while staying in ec2-user's home.
Class मधलं वाक्य
"Sagle kaam ec2-user madhye thambunach karaycha ahe."
सगळं काम ec2-user मध्येच थांबून करायचं आहे.
Classroom line
Do all the work while staying in ec2-user's home.
Classroom line
We have to use all the commands: cp, mv, rm.
Class मधलं वाक्य
"Sagle commands vaprache ahet aplayla. cp, mv, rm."
सगळे commands वापरायचे आहेत आपल्याला. cp, mv, rm.
Classroom line
We have to use all the commands: cp, mv, rm.
पुढे वाचायच्या आधी स्वतः करून बघा.
उत्तर:
cd
mkdir -p projects/web/{frontend,backend,database,testing}
touch projects/web/{notes.txt,report.txt}
mv projects/web/notes.txt projects/web/backend
mv projects/web/report.txt projects/web/database
cp projects/web/database/report.txt projects/web/testing
rm projects/web/database/report.txt
tree projects ने check करा:
projects
└── web
├── backend
│ └── notes.txt
├── database
├── frontend
└── testing
└── report.txt
6 directories, 2 files
Figure 5. Animation: notes.txt backend मध्ये move होते, report.txt database मध्ये, report.txt testing मध्ये copy होते, आणि database मधली copy काढली जाते. शेवटी: notes.txt backend मध्ये, report.txt testing मध्ये.
Home मध्येच का राहायचं? ec2-user फक्त स्वतःच्या home मध्ये (आणि /tmp सारख्या काही जागी) लिहू शकतो. बाहेर हे मिळतं:
mkdir /projects
mkdir: cannot create directory ‘/projects’: Permission denied
14. Smart काम: relative paths, braces आणि Tab
का. Interview task मध्ये जो आधी, आणि बरोबर, संपवतो तो जिंकतो. कमी type केलं की typos पण कमी.
- Relative paths. तुम्ही आधीच
/home/ec2-userमध्ये आहात./home/ec2-user/projects/web/backendनको,projects/web/backendलिहा. - Braces. एका ओळीत अनेक नावं:
mkdir -p projects/web/{frontend,backend,database,testing}. - Tab.
projects/wtype करून Tab दाबा; shellweb/पूर्ण करतो. कमी keys, spelling च्या चुका नाहीत.
Classroom line
You're already in ec2-user, so why are you typing the path from the very start?
Class मधलं वाक्य
"Tumhi already ec2-user madhe ahe na, mag ka bara pehlya pasun path det basla?"
तुम्ही already ec2-user मध्ये आहात ना, मग का बरं पहिल्यापासून path देत बसला?
Classroom line
You're already in ec2-user, so why are you typing the path from the very start?
Classroom line
When you need many files in one place: curly braces.
Class मधलं वाक्य
"Ekach thikani apla multiple files tayar karayche ahet, curly brace."
एकाच ठिकाणी आपल्याला multiple files तयार करायच्या आहेत, curly brace.
Classroom line
When you need many files in one place: curly braces.
15. File की folder? नाव आणि colour वरून ठरत नाही
का. rm किंवा rmdir करायच्या आधी आपल्या हातात काय आहे ते माहीत हवं. नावावरून अंदाज चालत नाही.
नाव ठरवत नाही:
touch report→reportनावाची file, extension ची गरज नाही.mkdir photos.txt→ folder, नाव.txtने संपलं तरी.
Colour पण ठरवत नाही. ls मध्ये folders बहुतेक निळे आणि files पांढऱ्या दिसतात, पण ते फक्त display setting आहे. Colours LS_COLORS variable मधून येतात, जो login करताना एक startup script (dircolors command ने) भरतो. Setting बदला, दुसरा terminal वापरा, किंवा output pipe करा, colours बदलतात किंवा जातात.
खरं कोण ठरवतं: Linux ला विचारा.
ls -F→ folders च्या शेवटी/येतो:photos.txt/ reportls -l→ पहिलं character (पुढचा section).
Correction
Class मध्ये colour settings ".dash profile" file मधून येतात असं सांगितलं. Colour चे नियम LS_COLORS मधून येतात (dircolors ने set होतात), जे बहुतेक ~/.bashrc किंवा ~/.bash_profile सारख्या startup files मधून load होतात. काहीही असो, colour ही display ची निवड आहे, file type नाही.
16. ls -l: पहिलं character
का. काय आहे, कोणाचं आहे, कधी बदललं, हे बघायची भरवशाची पद्धत म्हणजे ls -l (long listing).
कसं. एका रिकाम्या file my.txt आणि एका रिकाम्या folder ravi असलेल्या folder मध्ये:
[ec2-user@ip-172-31-xx-xx ~]$ ls -l
total 0
-rw-r--r--. 1 ec2-user ec2-user 0 Jan 5 10:15 my.txt
drwxr-xr-x. 2 ec2-user ec2-user 6 Jan 5 10:15 ravi
Column by column वाचा:
- पहिलं character:
-= नेहमीची file,d= directory. rw-r--r--: permissions (read, write, execute). तो पुढचा topic..: SELinux label जोडलेलं आहे (Amazon Linux SELinux वापरतं).1/2: links ची संख्या. Folder ला किमान 2: त्याचं नाव, आणि त्याचा स्वतःचा..ec2-user ec2-user: owner आणि group.0/6: size, bytes मध्ये. Folder ची size म्हणजे त्याच्या स्वतःच्या नावांच्या list ची size, आतल्या गोष्टींची नाही. Amazon Linux (XFS) वर छोट्या folder ला6सारखा छोटा आकडा दिसतो; दुसऱ्या systems वर बहुतेक4096दिसतो.Jan 5 10:15: शेवटचा बदल.- नाव.
Classroom line
The very first character tells us whether it's a file or a directory.
Class मधलं वाक्य
सगळ्यात पहिला जो character असतो ना, त्यावरून आपल्याला कळतं की ती file आहे की directory.
Classroom line – हिंदी
"Jo sabse first bit hota hai na, isse hume pata chalta hai wo file hai ya directory hai."

Class board वरून: Board वरचा सोपा केलेला ls -l: box केलेलं पहिलं character, file my.txt साठी dash आणि folder ravi साठी d, त्यानंतर permissions आणि owner व group ec2-user. खऱ्या output मध्ये links, size आणि वेळ पण असतात.
Figure 6. एका file आणि एका folder चा ls -l, प्रत्येक column ला नाव: type, permissions, SELinux dot, links, owner, group, size, modified time आणि नाव. Dash म्हणजे file, d म्हणजे directory.
Folder च्या आतलं नाही, तर folder ची स्वतःची ओळ बघायला: ls -ld ravi.
Correction
Board वर ls -l ची छोटी ओळ होती, फक्त type, permissions, owner, group आणि नाव. वर खरा output आहे, link count, size आणि date सकट. Dates उदाहरण म्हणून आहेत.
17. Commands चा summary
| काम | File | Folder |
|---|---|---|
| Copy | cp |
cp -r |
| Move किंवा rename | mv |
mv (-r नाही) |
| Delete | rm |
rmdir (फक्त रिकामा), rm -r (आतल्या सगळ्यासकट) |
काही overwrite किंवा delete होण्याआधी विचारायला हवं असेल तर cp, mv किंवा rm ला -i जोडा.
18. Hidden files: नावाच्या सुरुवातीला dot
का. तुमच्या home मध्ये आत्ताच अशा files आहेत ज्या ls ला दिसत नाहीत. Linux त्यांच्यात settings ठेवतं.
काय. Dot ने सुरू होणारं नाव नेहमीच्या ls पासून hidden असतं. एवढाच नियम.
कसं (home folder मधून):
touch notes.txt- Hide करा:
mv notes.txt .notes.txt ls→ दिसत नाही.ls -a→ ही बघा, आधीपासून hidden असलेल्या files च्या बाजूला.
तुमची list साधारण अशी दिसेल:
ls -a
. .. .bash_logout .bash_profile .bashrc .notes.txt .ssh projects raj ravi
Unhide करायला परत rename करा: mv .notes.txt notes.txt. Folders चं पण असंच: mv ravi .ravi hide, mv .ravi ravi unhide.
ls -A म्हणजे तेच, फक्त . आणि .. शिवाय.
Hidden files ची खरी उदाहरणं:
.bashrc,.bash_profile: तुमच्या shell च्या settings..ssh/: यातauthorized_keysअसते, म्हणजे तुमच्या नावाने login करायला परवानगी असलेल्या public keys ची list.- Section 2 आठवा:
ravi/*या सोडून देतो.ravi/.नाही.
Correction
Class मध्ये dot हा Linux न जाणणाऱ्या लोकांपासून files लपवायचा मार्ग म्हणून सांगितला. Dot नाव फक्त नेहमीच्या ls पासून लपवतो; ls -a type करणाऱ्या कोणालाही ते दिसतं. ही security नाही. File protect करायला permissions वापरा (पुढचा topic).
19. . आणि .. या entries
काय. प्रत्येक folder मध्ये, अगदी नवीन रिकाम्या folder मध्ये पण, ls -a दोन नावं दाखवतो:
.= हाच folder...= parent folder, एक level वर.
Folder च्या list मधल्या या खऱ्या entries आहेत, ज्या folder कडे आणि त्याच्या parent कडे point करतात. म्हणून त्या सगळीकडे चालतात:
cd ..→ एक level वर.cd .→ आहे तिथेच.cp one/a.txt .→ इथे copy.mv ravi/2.txt ..→ एक level वर move.
Figure 8. तुम्ही ravi मध्ये आहात: . ravi कडेच point करतो, .. त्याच्या parent ec2-user कडे. ls -a प्रत्येक folder मध्ये . आणि .. दाखवतो, रिकाम्या folder मध्ये पण.
साखळी डोळ्यासमोर आणा: प्रत्येक folder ला माहीत असतं तो कुठे आहे (.) आणि त्याचा parent कुठे आहे (..), म्हणून तुम्ही नेहमी / पर्यंत परत वर चढू शकता.
20. निघण्याआधी: terminate की stop
Class च्या शेवटी instance आधी stop केला आणि मग terminate.
- Stop = बंद करणं. Disk (EBS) राहते; नंतर परत start करता येतो.
- Terminate = server delete करणं. By default root EBS volume पण delete होतो. Undo करता येत नाही.
- Terminate करायच्या आधी stop करायची गरज नाही. Terminate स्वतःच बंद करतो.
Stop vs terminate, आणि दोन्हीचा खर्च: EC2 server च्या आत: EBS, ENI, instance states, SSH ने connect करणं, आणि Linux म्हणजे काय.
Correction
Class मध्ये instance आधी stop केला आणि मग terminate. Stop ची गरज नाही: terminate instance स्वतःच बंद करतो आणि by default root volume delete करतो. ज्याची गरज नाही तोच server terminate करा; परत वापरायच्या practice servers साठी stop पुरे.
21. घरी करायचे tasks
Try at home
Task 1: फक्त आतलं
srcबनवा, त्यातa.txt,b.txtआणि hidden.env. एक रिकामाdstबनवा.src/*नेsrcचं फक्त आतलंdstमध्ये copy करा.ls -A dstने check करा..envआहे का?dstरिकामा करा (rm -r dst/*) आणिsrc/.ने परत करा.
Task 2: mv
touch my.txt, मग तिचं नावour.txtकरा.- एकाच command ने
our.txtलाsrcमध्ये move करूनfinal.txtनाव द्या. - Home न सोडता
src/final.txtचं नावsrc/done.txtकरा. mkdir boxकरा आणि अख्खाsrcfolderboxमध्ये move करा.-rलागला का?
Task 3: delete
rmdir boxtry करा. Error वाचा.rm boxtry करा. Error वाचा.rm -ri boxने delete करा; सगळ्यालाyद्या.
Task 4: नीट बघा
touch reportआणिmkdir photos.txt.ls -lआणिls -Fचालवा. Folder कोणता?reportला dot लावून hide करा,ls -aने शोधा, मग unhide करा.- Practice task (section 13) तुमच्या स्वतःच्या folder नावांनी, home मधून, शक्य तितक्या कमी commands मध्ये परत करा.
झालं की console मधून instance stop करा, किंवा परत वापरणार नसाल तर terminate करा.
Recap
थोडक्यात
- Prompt current folder दाखवतो:
[ec2-user@ip-... ravi]$.~म्हणजे home. - फक्त आतलं:
cp -r ravi/* raj. Hidden files सकट:cp -r ravi/. raj. mv SOURCE DESTINATION= cut-paste. आधीच असलेला folder → आत जातो; नवीन नाव → rename.mv my.txt ravi/you.txtएकाच step मध्ये move आणि rename;mv ravi/1.txt ravi/2.txthome न सोडता rename.mvला-rलागत नाही: same disk वर फक्त नावाची entry बदलते; दुसऱ्या disk वर copy, मग delete.mvगुपचूप overwrite करतो;mv -iविचारतो. Wildcards चालतात:mv *.txt ravi.rmfiles,rmdirरिकामे folders,rm -rसगळ्यासकट folders. Recycle bin नाही.- File वर
rm -rहा safety चा धोका आहे, speed चा प्रश्न नाही. शंका असेल तरrm -i/rm -ri. - Home मधूनच relative paths, braces आणि Tab वापरून काम करा.
- नाव आणि colour वरून file की folder कळत नाही;
ls -l(पहिलं character-किंवाd) आणिls -Fने कळतं. - Hidden = नाव dot ने सुरू.
ls -aते दाखवतो. Hidden म्हणजे secret नाही. - प्रत्येक folder मध्ये
.(स्वतः) आणि..(parent). - Terminate आधी stop ची गरज नाही, आणि तो by default root volume delete करतो.
Samjla ka? Ghari practice task parat kara, ani rm vaparnyaadhi don vela vichar kara.
Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. Folders आणि files ची नावं (ravi, raj, projects, notes.txt, report.txt वगैरे) शिकण्यासाठीची उदाहरणं आहेत. Commands चे outputs आणि error messages GNU bash आणि coreutils वर तपासले, जे Amazon Linux 2023 पण वापरतं; prompt मधला hostname आणि ls -l मधल्या dates उदाहरण म्हणून आहेत.