Linux File आणि Directory Commands Cheat Sheet: ls, cd, cp, mv, rm, mkdir उदाहरणांसह
हे commands आपण सगळ्यात आधी शिकतो आणि कधीच विसरत नाही: ls, cd, pwd, mkdir, touch, cp, mv, rm. हजारो वेळा type कराल. इथे प्रत्येकाचे उपयोगी options आणि खरा data delete करणाऱ्या चुका शिकू.
या chapter मध्ये तुम्ही काय शिकाल
- pwd, cd, ls ने फिरणं
- touch आणि mkdir -p ने files/folders
- cp -r, -a, -i, -u ने copy
- mv ने move आणि rename
- rm, rm -r, rmdir ने सुरक्षित delete
- Wildcards, brace expansion आणि cheat sheet
1. रोजचं उदाहरण: कपाट लावणं
हे का लागतं?
पूजा ठाण्यात office चं कपाट लावतेय. ती कुठे उभी आहे ते बघते, shelf उघडून बघते, नवे boxes बनवते, file ची xerox काढते, folder दुसऱ्या shelf वर हलवते आणि जुने कागद फेकते.
हे काय आहे?
मी कुठे = pwd. Shelf मधे बघणं = ls. दुसऱ्या shelf कडे जाणं = cd. नवा box = mkdir. कोरा कागद = touch. Xerox = cp. दुसऱ्या shelf वर हलवणं = mv. फेकणं = rm. Linux मधे dustbin नाही, म्हणून rm कायमचं.
कसं करायचं (step by step)
2. pwd आणि cd: मी कुठे आणि कसं फिरायचं
हे का लागतं?
Path दिला नाही तर प्रत्येक command current folder वर चालतो. चुकीच्या folder मधे rm म्हणजे मोठा अपघात.
हे काय आहे?
pwd working directory print करतो. cd ती बदलतो. नुसतं cd किंवा cd ~ home ला. cd - मागच्या folder ला. cd .. एक वर.
| Command | कुठे जातो |
|---|---|
| cd /var/log | Absolute path |
| cd logs | इथून sub folder |
| cd .. | Parent |
| cd ../.. | दोन वर |
| cd ~ or cd | Home |
| cd - | मागचा folder |
कसं करायचं (step by step)
- कुठे आहात ते print करा.
pwd
Output:
/home/arjun
याचा अर्थ: तुम्ही Arjun च्या home मधे.
- Logs ला जा आणि परत.
cd /var/log && pwd && cd -
Output:
/var/log
/home/arjun
याचा अर्थ: cd - परत आणतो आणि जुना folder print करतो.
- दोन levels वर.
cd /etc/nginx/sites-enabled && cd ../.. && pwd
Output:
/etc
याचा अर्थ: प्रत्येक .. path चा एक भाग काढतो.
- Space असलेल्या नावांना quotes.
cd "Project Files"
याचा अर्थ: Quotes शिवाय cd ला दोन शब्द दिसतात आणि fail होतो.
cd सविस्तर: cd ~, cd - आणि cd ..
हे का लागतं?
दिवसभर folders मधे फिरावं लागतं. Short forms माहीत असले की वेळ वाचतो आणि चुकीच्या जागी काम होत नाही.
हे काय आहे?
cd म्हणजे change directory. एक path घेतो. Path दिला नाही तर home folder ला जातो.
नेहमीचे options
| Option | काय करतो |
|---|---|
cd ~ | तुमच्या home folder ला (नुसत्या cd सारखं). |
cd ~priya | priya user च्या home ला. |
cd - | आधीच्या folder ला परत, आणि तो print. |
cd .. | एक folder वर (parent). |
cd ../.. | दोन folders वर. |
cd / | Disk tree च्या root ला. |
कसं करायचं (step by step)
- एका खोल folder मधून सुरू.
cd /var/www/shop/images && pwd
Output:
/var/www/shop/images
याचा अर्थ: तुम्ही images मधे आहात.
- .. ने एक वर.
cd .. && pwd
Output:
/var/www/shop
याचा अर्थ: .. म्हणजे current folder चा parent.
- ~ ने home ला.
cd ~ && pwd
Output:
/home/arjun
याचा अर्थ: ~ म्हणजे तुमच्या home path चं short.
- - ने परत.
cd -
Output:
/var/www/shop
याचा अर्थ: cd - शेवटच्या दोन folders मधे अदलाबदल करतो.
खालच्या tasks मधे सराव करा: सराव tasks
3. ls: folder मधे काय आहे
हे का लागतं?
काही करण्याआधी नावं, size, owner, dates आणि hidden files बघायला हव्या.
हे काय आहे?
ls files list करतो. उपयोगी options: -l long format, -a hidden (. ने सुरू होणाऱ्या), -h human sizes, -t नवीन आधी, -r उलट, -S मोठ्या आधी, -R recursive, -d folder स्वतः, -i inode numbers.
कसं करायचं (step by step)
- Hidden files आणि human sizes सह long list.
ls -lah
Output:
total 24K
drwxr-x--- 4 arjun arjun 4.0K Oct 25 10:00 .
drwxr-xr-x 5 root root 4.0K Oct 20 09:00 ..
-rw-r--r-- 1 arjun arjun 220 Oct 20 09:00 .bashrc
drwxrwxr-x 2 arjun arjun 4.0K Oct 25 10:00 app
-rw-rw-r-- 1 arjun arjun 1.2M Oct 25 09:58 data.csv
याचा अर्थ: Type+permissions, links, owner, group, size, date, नाव.
- नवीन files आधी (आत्ता काय बदललं).
ls -lt /var/log | head -4
Output:
total 2140
-rw-r----- 1 syslog adm 81234 Oct 25 10:52 syslog
-rw-r----- 1 syslog adm 20211 Oct 25 10:51 auth.log
drwxr-xr-x 2 root root 4096 Oct 25 10:40 nginx
याचा अर्थ: syslog शेवटी बदलला.
- मोठ्या files आधी.
ls -lhS ~/downloads | head -3
Output:
total 3.1G
-rw-r--r-- 1 arjun arjun 2.8G Oct 21 ubuntu.iso
-rw-r--r-- 1 arjun arjun 210M Oct 22 video.mp4
याचा अर्थ: ISO सगळ्यात जास्त जागा घेतोय.
- Folder स्वतःची माहिती.
ls -ld /etc
Output:
drwxr-xr-x 142 root root 12288 Oct 25 08:00 /etc
याचा अर्थ: -d नसेल तर ls आतलं list करेल.
- Wildcard ने जुळवा.
ls *.log
Output:
app.log error.log
याचा अर्थ: * म्हणजे कोणताही text. ? म्हणजे एक character.
4. mkdir आणि touch: folders आणि files बनवा
हे का लागतं?
Projects ना folder structure लागतं. Scripts ना सुरुवातीला रिकाम्या files किंवा step झाल्याची खूण लागते.
हे काय आहे?
mkdir folders बनवतो. -p parent folders पण बनवतो आणि आधी असतील तर fail होत नाही. -v काय बनवलं ते print. -m permissions. touch रिकामी file बनवतो, किंवा असलेल्या file चा time update करतो.
कसं करायचं (step by step)
- एकाच वेळी nested project tree.
mkdir -pv shop/{src,tests,docs}
Output:
mkdir: created directory 'shop'
mkdir: created directory 'shop/src'
mkdir: created directory 'shop/tests'
mkdir: created directory 'shop/docs'
याचा अर्थ: {a,b,c} म्हणजे brace expansion. -p ने आधी shop बनवलं.
- एकदम अनेक files.
touch shop/src/{app,db,utils}.py && ls shop/src
Output:
app.py db.py utils.py
याचा अर्थ: Brace expansion touch सोबत पण चालतो.
- Range ने month folders.
mkdir -p reports/2026-{01..12} && ls reports | head -3
Output:
2026-01
2026-02
2026-03
याचा अर्थ: {01..12} leading zero सह मोजतो.
- File चा time update.
touch -d '2026-01-01 09:00' old.txt && ls -l old.txt
Output:
-rw-rw-r-- 1 arjun arjun 0 Jan 1 09:00 old.txt
याचा अर्थ: जुन्या files delete करणाऱ्या cleanup scripts test करायला.
mkdir सविस्तर: -p, -v आणि -m
हे का लागतं?
Apps, backups, logs सगळ्यांना folders लागतात. Folder आधीच आहे म्हणून script fail होऊ नये.
हे काय आहे?
mkdir नवा folder बनवतो. -p नसेल तर parent नसल्यास किंवा folder आधीच असल्यास fail होतो.
नेहमीचे options
| Option | काय करतो |
|---|---|
mkdir NAME | एक folder. |
-p | नसलेले parents बनवतो; आधी असेल तर error नाही. |
-v | बनलेला प्रत्येक folder print. |
-m 750 | बनवतानाच permissions. |
कसं करायचं (step by step)
- -p शिवाय nested path.
mkdir data/2026/oct
Output:
mkdir: cannot create directory 'data/2026/oct': No such file or directory
याचा अर्थ: data आणि 2026 अजून नाहीत.
- आता -p आणि -v सह.
mkdir -pv data/2026/oct
Output:
mkdir: created directory 'data'
mkdir: created directory 'data/2026'
mkdir: created directory 'data/2026/oct'
याचा अर्थ: -p ने प्रत्येक नसलेली level बनवली.
- परत चालवा.
mkdir -p data/2026/oct; echo $?
Output:
0
याचा अर्थ: Exit code 0: आधी असूनही error नाही. Scripts मधे safe.
- Private folder.
mkdir -m 750 payroll && ls -ld payroll
Output:
drwxr-x--- 2 arjun arjun 4096 Oct 25 11:00 payroll
याचा अर्थ: सुरुवातीपासूनच others ना access नाही.
खालच्या tasks मधे सराव करा: सराव tasks
touch सविस्तर: रिकाम्या files आणि timestamps
हे का लागतं?
Cleanup jobs, make आणि backups file च्या time वरून ठरवतात. touch ने file बनवता येते किंवा time मुद्दाम set करता येतो.
हे काय आहे?
प्रत्येक file ला access time (atime) आणि modify time (mtime) असतो. touch FILE नसेल तर बनवतो, असेल तर दोन्ही times आत्ताचे करतो.
नेहमीचे options
| Option | काय करतो |
|---|---|
touch f | f बनवा, किंवा times आत्ताचे. |
-a | फक्त access time. |
-m | फक्त modify time. |
-c | File नसेल तर बनवू नका. |
-d "2026-01-01 09:00" | तुम्ही ठरवलेली date. |
-t 202601010900 | तेच, [[CC]YY]MMDDhhmm form मधे. |
-r ref | दुसऱ्या file चे times copy. |
कसं करायचं (step by step)
- नवी रिकामी file.
touch todo.txt && ls -l todo.txt
Output:
-rw-rw-r-- 1 arjun arjun 0 Oct 25 11:05 todo.txt
याचा अर्थ: Size 0, time आत्ताचा.
- stat ने दोन्ही times.
stat -c '%x | %y' todo.txt
Output:
2026-10-25 11:05:10 | 2026-10-25 11:05:10
याचा अर्थ: %x access, %y modify.
- फक्त modify time.
touch -m -d '2026-09-01 08:00' todo.txt && stat -c '%x | %y' todo.txt
Output:
2026-10-25 11:05:10 | 2026-09-01 08:00:00
याचा अर्थ: Access time बदलला नाही.
- नसलेली file बनवू नका.
touch -c nofile.txt; ls nofile.txt
Output:
ls: cannot access 'nofile.txt': No such file or directory
याचा अर्थ: -c फक्त आधी असलेल्या files update करतो.
- दुसऱ्या file चे times.
touch -r /etc/hostname todo.txt && ls -l --time-style=+%F todo.txt
Output:
-rw-rw-r-- 1 arjun arjun 0 2026-03-14 todo.txt
याचा अर्थ: todo.txt चा time आता /etc/hostname सारखा.
खालच्या tasks मधे सराव करा: सराव tasks
5. cp: files आणि folders copy
हे का लागतं?
Config edit किंवा data बदलण्याआधी copy घेतो. Files deploy सुद्धा copy नेच होतात.
हे काय आहे?
cp SOURCE DEST. -r folders copy. -a (archive) folders copy करून permissions, owners, times ठेवतो. -i overwrite आधी विचारतो. -u फक्त नवीन files. -v प्रत्येक file दाखवतो. -n कधी overwrite नाही. Destination आधी आहे की नाही हे फार महत्त्वाचं.
कसं करायचं (step by step)
- तारखेसह config backup.
cp -a nginx.conf nginx.conf.$(date +%F)
याचा अर्थ: -a तेच permissions आणि time ठेवतो.
- Folder copy.
cp -r shop shop-backup && ls
Output:
shop shop-backup
याचा अर्थ: -r नसेल तर: cp: -r not specified; omitting directory.
- अनेक files एका folder मधे.
cp -v *.csv /data/incoming/
Output:
'jan.csv' -> '/data/incoming/jan.csv'
'feb.csv' -> '/data/incoming/feb.csv'
याचा अर्थ: अनेक sources असतील तर शेवटचा argument folder हवा.
- Overwrite आधी विचारा.
cp -i report.pdf /share/
Output:
cp: overwrite '/share/report.pdf'? n
याचा अर्थ: n दिल्याने जुनी file वाचली.
- Destination आधी असण्याचा सापळा.
cp -r src dst; cp -r src dst; ls dst
Output:
app.py src
याचा अर्थ: दुसऱ्यांदा src हा dst च्या आत गेला. Contents साठी cp -r src/. dst/.
cp सविस्तर: -r, -i, -v आणि -p
हे का लागतं?
प्रत्येक बदलाआधी copy हे safety net. योग्य option folders पूर्ण ठेवतो, नुकसानाआधी विचारतो आणि file details जपतो.
हे काय आहे?
cp SOURCE DEST copy करतो. साधा cp folders सोडतो आणि copy ला नवा owner आणि आत्ताचा time देतो.
नेहमीचे options
| Option | काय करतो |
|---|---|
-r | Folder आणि आतलं सगळं. |
-i | Overwrite आधी विचारा. |
-v | Copy झालेली प्रत्येक file print. |
-p | Mode, owner, times जपा. |
-a | Archive: -r + -p + links. |
कसं करायचं (step by step)
- Folder वर साधा cp fail.
cp assets assets-copy
Output:
cp: -r not specified; omitting directory 'assets'
याचा अर्थ: Folders साठी cp ला -r लागतो.
- -r आणि -v ने folder copy.
cp -rv assets assets-copy
Output:
'assets' -> 'assets-copy'
'assets/logo.png' -> 'assets-copy/logo.png'
याचा अर्थ: -v copy केलेली प्रत्येक file दाखवतो.
- -p शिवाय time चा problem.
cp invoice-sep.pdf /tmp/ && ls -l --time-style=+%F invoice-sep.pdf /tmp/invoice-sep.pdf
Output:
-rw-r--r-- 1 arjun arjun 52K 2026-09-30 invoice-sep.pdf
-rw-r--r-- 1 arjun arjun 52K 2026-10-25 /tmp/invoice-sep.pdf
याचा अर्थ: Copy नवी दिसते. Date वरचा cleanup चुकीचा वागेल.
- -p ने details जपा.
cp -p invoice-sep.pdf /backup/ && ls -l --time-style=+%F /backup/invoice-sep.pdf
Output:
-rw-r--r-- 1 arjun arjun 52K 2026-09-30 /backup/invoice-sep.pdf
याचा अर्थ: Original सारखीच date आणि mode.
- -i ने overwrite आधी विचारा.
cp -i notes.md /backup/
Output:
cp: overwrite '/backup/notes.md'? n
याचा अर्थ: n ने जुना backup safe.
खालच्या tasks मधे सराव करा: सराव tasks
6. mv: move आणि rename
हे का लागतं?
Files ना नवी नावं आणि जागा लागतात. त्याच disk वर mv लगेच होतो कारण फक्त नाव बदलतं.
हे काय आहे?
mv SOURCE DEST rename किंवा move करतो. वेगळ्या rename command ची गरज नाही. -i overwrite आधी विचारतो. -n कधी overwrite नाही. -v print. -b overwrite होणाऱ्या file चा backup. दुसऱ्या disk वर move = copy + delete.
कसं करायचं (step by step)
- File rename.
mv draft.txt final.txt && ls
Output:
final.txt
याचा अर्थ: तोच folder, नवं नाव.
- Files folder मधे हलवा.
mv -v *.jpg photos/
Output:
renamed 'a.jpg' -> 'photos/a.jpg'
renamed 'b.jpg' -> 'photos/b.jpg'
याचा अर्थ: Files आता photos मधे.
- असलेली file overwrite नको.
mv -n new.conf app.conf; ls
Output:
app.conf new.conf
याचा अर्थ: app.conf आधी होती, म्हणून काही हललं नाही.
- Folder rename.
mv shop-backup shop-old
याचा अर्थ: mv ला folders साठी -r लागत नाही.
mv सविस्तर: rename vs move
हे का लागतं?
नवे users rename command शोधतात. Linux मधे mv दोन्ही कामं करतो, आणि कोणतं होतंय ते महत्त्वाचं.
हे काय आहे?
DEST आधी असलेला folder असेल तर mv SOURCE त्यात हलवतो. DEST नवं नाव असेल तर rename. तीच disk = लगेच. दुसरी disk = copy मग delete.
नेहमीचे options
| Option | काय करतो |
|---|---|
mv a b | b नाही: a चं नाव b. |
mv a dir/ | dir folder आहे: a त्यात. |
mv a dir/b | एकाच step मधे move आणि rename. |
-i | Overwrite आधी विचारा. |
-n | कधी overwrite नाही. |
-v | काय झालं ते print. |
कसं करायचं (step by step)
- त्याच folder मधे rename.
mv -v quote.txt quote-final.txt
Output:
renamed 'quote.txt' -> 'quote-final.txt'
याचा अर्थ: तीच जागा, नवं नाव.
- Folder मधे हलवा.
mv -v quote-final.txt clients/
Output:
renamed 'quote-final.txt' -> 'clients/quote-final.txt'
याचा अर्थ: clients होता, म्हणून file आत गेली.
- Move आणि rename एकत्र.
mv clients/quote-final.txt archive/quote-2026.txt
याचा अर्थ: एका step मधे नवा folder आणि नवं नाव.
- सापळा: folder नावात typo.
mv report.pdf clinets; ls
Output:
clinets
याचा अर्थ: clinets folder नव्हता, म्हणून file चं नाव clinets झालं. Safe राहायला / लावा: mv report.pdf clinets/ उलट fail होतो.
खालच्या tasks मधे सराव करा: सराव tasks
7. rm आणि rmdir: सुरक्षित delete
हे का लागतं?
Disks भरतात आणि जुने builds काढावे लागतात. पण Linux मधे recycle bin नाही. चुकीचं rm -rf company चा data पुसू शकतं.
हे काय आहे?
rm files delete करतो. -r folders आणि आतलं सगळं. -f force, प्रश्न नाही, file नसेल तरी error नाही. -i प्रत्येक file ला विचारतो. -I 3 पेक्षा जास्त files ला एकदा विचारतो. rmdir फक्त रिकामे folders. नवं rm --no-preserve-root शिवाय / delete करत नाही.
कसं करायचं (step by step)
- एक file delete करून खात्री.
rm -i old.txt
Output:
rm: remove regular empty file 'old.txt'? y
याचा अर्थ: y ने delete. कायमची गेली.
- रिकामा folder delete.
rmdir shop/docs
याचा अर्थ: रिकामा नसेल तर fail: Directory not empty.
- आधी preview, मग folder tree delete.
ls -R build | head; rm -rI build
Output:
rm: remove 1 argument recursively? y
याचा अर्थ: -I एकदा विचारतो. -f पेक्षा safe.
- 7 दिवसांपेक्षा जुन्या files (preview, मग delete).
find /tmp/reports -name '*.csv' -mtime +7 -print; find /tmp/reports -name '*.csv' -mtime +7 -delete
Output:
/tmp/reports/sep.csv
याचा अर्थ: आधी नेहमी -print ने चालवा.
- - ने सुरू होणारं नाव delete.
rm -- -bad.txt
याचा अर्थ: -- म्हणजे options संपले.
rm सविस्तर: -r, -f आणि -i
हे का लागतं?
Recycle bin नाही. Enter दाबण्याआधी प्रत्येक rm option नेमकं काय करतो ते माहीत हवं.
हे काय आहे?
rm files काढतो. -r ने folders आणि आतलं सगळं. -f न विचारता काढतो आणि "not found" errors लपवतो. -i प्रत्येक file ला विचारतो.
नेहमीचे options
| Option | काय करतो |
|---|---|
rm f | File delete. |
-r | Folder tree delete. |
-f | Force: प्रश्न नाही, नसेल तरी error नाही. |
-i | प्रत्येक delete आधी विचारा. |
-I | मोठ्या delete ला एकदा विचारा. |
-v | काढलेली प्रत्येक file print. |
कसं करायचं (step by step)
- -r शिवाय folder वर rm.
rm old-build
Output:
rm: cannot remove 'old-build': Is a directory
याचा अर्थ: Folders साठी rm ला -r लागतो.
- प्रत्येक file ला प्रश्न.
rm -i draft1.txt draft2.txt
Output:
rm: remove regular file 'draft1.txt'? y
rm: remove regular file 'draft2.txt'? n
याचा अर्थ: draft2.txt ठेवायचं ठरवलं.
- नसलेल्या file ला force.
rm -f lock.pid; echo $?
Output:
0
याचा अर्थ: lock.pid नसली तरी error नाही. Scripts मधे उपयोगी.
- प्रत्येक file दाखवत folder tree delete.
rm -rv old-build
Output:
removed 'old-build/app.js'
removed directory 'old-build'
याचा अर्थ: -r आधी path दोनदा तपासा. रिकामा असू शकणाऱ्या variable सोबत -rf कधी नको.
खालच्या tasks मधे सराव करा: सराव tasks
rmdir vs rm -r
हे का लागतं?
कधी folder खरंच रिकामा असेल तरच delete करायचा असतो. त्यासाठी rmdir हे safe tool.
हे काय आहे?
rmdir फक्त रिकामे folders काढतो, नाहीतर नकार देतो. rm -r folder आणि आतलं सगळं काढतो, काहीही असो.
नेहमीचे options
| Option | काय करतो |
|---|---|
rmdir d | रिकामा असेल तरच d delete. |
rmdir -p a/b/c | c, मग b, मग a, प्रत्येक रिकामा झाला तर. |
-v | काढलेला प्रत्येक folder print. |
rm -r d | d आणि सगळं content. Safety check नाही. |
कसं करायचं (step by step)
- Files असलेल्या folder वर rmdir.
rmdir uploads
Output:
rmdir: failed to remove 'uploads': Directory not empty
याचा अर्थ: rmdir ने files वाचवल्या.
- रिकाम्या folder वर rmdir.
rmdir -v empty-dir
Output:
rmdir: removing directory, 'empty-dir'
याचा अर्थ: आत काही नव्हतं म्हणून गेला.
- रिकामी chain काढा.
rmdir -pv tmp/x/y
Output:
rmdir: removing directory, 'tmp/x/y'
rmdir: removing directory, 'tmp/x'
rmdir: removing directory, 'tmp'
याचा अर्थ: -p वर जाऊन प्रत्येक रिकामा parent काढला.
- खरंच सगळं काढायचं तेव्हा.
rm -rI uploads
Output:
rm: remove 1 argument recursively? y
याचा अर्थ: खात्री असेल तेव्हाच rm -r. -I एकदा विचारतो.
खालच्या tasks मधे सराव करा: सराव tasks
8. Cheat sheet
हे का लागतं?
एका page चा reference कामात आणि interview मधे वेळ वाचवतो.
हे काय आहे?
या chapter चे commands आणि त्यांचे best options.
| काम | Command |
|---|---|
| मी कुठे | pwd |
| Home / मागे / वर | cd ~ / cd - / cd .. |
| Detailed list | ls -lah |
| नवीन आधी | ls -lt |
| मोठ्या आधी | ls -lhS |
| Folder tree | mkdir -p a/b/c |
| रिकामी file | touch f.txt |
| माहिती ठेवून folder copy | cp -a src dst |
| विचारून copy | cp -i a b |
| Rename / move | mv old new |
| Overwrite शिवाय move | mv -n a dir/ |
| विचारून delete | rm -i f |
| Folder delete | rm -r dir |
| रिकामा folder | rmdir dir |
| Folder tree | tree -L 2 |
कसं करायचं (step by step)
- बनवलेलं tree बघा.
tree -L 2 shop
Output:
shop
├── src
│ ├── app.py
│ ├── db.py
│ └── utils.py
└── tests
2 directories, 3 files
याचा अर्थ: tree एका नजरेत structure दाखवतो.
9. अनेक industries मधली खरी उदाहरणं
हे का लागतं?
तेच Linux skill प्रत्येक प्रकारच्या company मध्ये लागतं. वेगवेगळ्या ठिकाणी पाहिलं की लक्षात राहतं.
हे काय आहे?
प्रत्येक row म्हणजे एक काल्पनिक team. कोण हे वापरतं आणि कसं ते दाखवते.
कसं करायचं (step by step)
| Team आणि शहर | ते कसं वापरतात | Command |
|---|---|---|
| Arjun, Java backend, Bengaluru | नवा JAR copy, जुना ठेवतो | cp -a app.jar app.jar.bak |
| Emma, data science, Toronto | Daily data साठी तारखेचे folders | mkdir -p data/$(date +%F) |
| Wei, frontend, Singapore | Fresh build आधी जुने builds साफ | rm -rf dist/ |
| Lakshmi, QA, Chennai | Failed test reports बाजूला | mv reports/failed-* archive/ |
| Pedro, media, Lisbon | सगळ्यात मोठ्या videos | ls -lhS /media/videos |
| Nikhil, sysadmin, Nagpur | बदलांआधी /etc backup | sudo cp -a /etc /root/etc-$(date +%F) |
| Amara, NGO IT, Nairobi | Month नुसार donor report folders | mkdir -p donors/2026-{01..12} |
10. नेहमीच्या errors आणि त्यांचे fixes
हे का लागतं?
हे errors सगळ्यांना येतात. कारण माहीत असलं की तास वाचतात.
हे काय आहे?
आधी नेमका message वाचा. मग खालच्या row शी जुळवा.
कसं करायचं (step by step)
| दिसणारा error | का होतं | Fix कसा करायचा |
|---|---|---|
cp: -r not specified; omitting directory 'shop' | -r शिवाय folder copy | -r किंवा -a लावा.cp -a shop shop2 |
rmdir: failed to remove 'docs': Directory not empty | rmdir फक्त रिकामे folders | आत बघा, खात्री असेल तर rm -r.ls docs; rm -r docs |
mkdir: cannot create directory 'a/b/c': No such file or directory | Parent folders नाहीत | -p वापरा.mkdir -p a/b/c |
mkdir: cannot create directory 'logs': File exists | नाव आधीच वापरलं | mkdir -p (असेल तरी error नाही) किंवा दुसरं नाव.mkdir -p logs |
cp: target 'backup' is not a directory | अनेक sources पण शेवटचा argument folder नाही | आधी folder बनवा.mkdir backup && cp *.csv backup/ |
rm: cannot remove 'file': Permission denied | Folder वर write permission नाही | Folder चं ls -ld बघा; system file delete करायचीच असेल तरच sudo.ls -ld . |
mv: cannot move 'a' to 'b/a': Directory not empty | त्याच नावाचा folder आधीच files सह आहे | cp -a ने merge करून delete, किंवा rename.cp -a a/. b/a/ && rm -r a |
ls: cannot access '*.log': No such file or directory | Wildcard ला कोणतीही file जुळत नाही | Folder आणि pattern तपासा.ls -la |
rm: invalid option -- 'b' | File नाव - ने सुरू | नावाआधी -- किंवा ./ वापरा.rm ./-bad.txt |
bash: cd: too many arguments | Folder नावात space, quotes नाहीत | Quotes वापरा.cd "My Files" |
11. Troubleshooting step by step
हे का लागतं?
File command ने अनपेक्षित केलं तर थांबा आणि हे तपासा.
हे काय आहे?
वरून खाली जा. ज्या step ला problem दिसतो तिथे थांबा.
कसं करायचं (step by step)
- मी कुठे?
pwd
- Wildcard कशात expand होईल?
echo rm *.log
- Destination आहे का, folder आहे का?
ls -ld dest
- Folder माझा आहे का?
ls -ld . ; id
- Link आहे की खरा folder?
ls -l name
- Backup आहे का?
ls -l *.bak
12. Lab 1: गोंधळलेला downloads folder लावा
हे का लागतं?
Zoya चा Lucknow मधे design studio आहे. Downloads folder मधे 300 mixed files. Type नुसार folders मधे लावा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Test files बनवा.
mkdir -p ~/dl && cd ~/dl && touch logo{1..3}.png brief{1..2}.pdf song.mp3 invoice-{jan,feb}.pdf
- आधी बघा.
ls
Output:
brief1.pdf brief2.pdf invoice-feb.pdf invoice-jan.pdf logo1.png logo2.png logo3.png song.mp3
- Type folders.
mkdir -p images docs music
- Type नुसार move.
mv -v *.png images/ && mv -v *.pdf docs/ && mv -v *.mp3 music/
Output:
renamed 'logo1.png' -> 'images/logo1.png'
...
- Invoices sub-folder मधे.
mkdir -p docs/invoices && mv docs/invoice-* docs/invoices/
- Result तपासा.
tree
Output:
.
├── docs
│ ├── brief1.pdf
│ ├── brief2.pdf
│ └── invoices
│ ├── invoice-feb.pdf
│ └── invoice-jan.pdf
├── images
│ ├── logo1.png ...
└── music
└── song.mp3
- Backup आणि साफ.
cp -a ~/dl ~/dl-backup && rm -rI ~/dl-backup/music
Output:
rm: remove 1 argument recursively? y
13. Lab 2: Copies वापरून safe deploy
हे का लागतं?
Site चं नवं version deploy करा आणि एका command मधे rollback करता यावा.
हे काय आहे?
पूर्ण hands-on lab. प्रत्येक step test Linux machine वर करा (EC2 instance, VM किंवा WSL).
कसं करायचं (step by step)
- Releases बनवा.
mkdir -p /srv/site/releases/{v1,v2} && echo v1 > /srv/site/releases/v1/index.html && echo v2 > /srv/site/releases/v2/index.html
- v1 live copy.
cp -a /srv/site/releases/v1/. /srv/site/live/ 2>/dev/null || { mkdir -p /srv/site/live && cp -a /srv/site/releases/v1/. /srv/site/live/; }; cat /srv/site/live/index.html
Output:
v1
- Live backup, v2 deploy.
cp -a /srv/site/live /srv/site/live.bak && cp -a /srv/site/releases/v2/. /srv/site/live/ && cat /srv/site/live/index.html
Output:
v2
- Rollback.
rm -r /srv/site/live && mv /srv/site/live.bak /srv/site/live && cat /srv/site/live/index.html
Output:
v1
Ravindra Bagale's Tip
Before any rm with a wildcard, run the same line with echo in front. echo rm *.log shows exactly what will be deleted, and deletes nothing.
Ravindra Bagale's Tip – मराठी
Wildcard असलेल्या कोणत्याही rm आधी त्याच line च्या पुढे echo लावा. echo rm *.log नेमकं काय delete होईल ते दाखवतो, आणि काहीच delete करत नाही.
Ravindra Bagale's Tip – हिंदी
Wildcard वाले किसी भी rm से पहले उसी line के आगे echo लगाइए। echo rm *.log ठीक-ठीक दिखाता है कि क्या delete होगा, और कुछ delete नहीं करता।
14. नेहमी विचारले जाणारे प्रश्न
प्र. rm undo करता येतं का?
नाही. Recycle bin नाही. Backup किंवा snapshot मधून restore.
प्र. cp -r vs cp -a?
-a = -r + permissions, owner, times, links ठेवतो. Backups साठी -a.
प्र. Hidden files कशा बघायच्या?
ls -a. Hidden files dot ने सुरू, उदा. .bashrc.
प्र. अनेक files rename कशा?
Loop: for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done.
प्र. 10 GB file चा mv लगेच का?
त्याच file system वर फक्त directory entry बदलते. Data हलत नाही.
15. मुलाखत प्रश्न आणि उत्तरं
Beginner level
प्र. Nested folders कसे?
mkdir -p a/b/c.
प्र. Folder copy कसा?
cp -r src dst, किंवा attributes साठी cp -a.
प्र. File rename कशी?
mv old new.
प्र. cd - काय करतो?
मागच्या folder ला परत.
Mid level level
प्र. rm -i vs rm -I?
-i प्रत्येक file ला. -I 3 पेक्षा जास्त किंवा recursive ला एकदाच.
प्र. cp -r src dst दुसऱ्यांदा वेगळं का वागतो?
dst असेल तर src त्याच्या आत dst/src म्हणून जातो. Contents साठी src/.
प्र. -f नावाची file कशी delete?
rm -- -f किंवा rm ./-f.
प्र. Size नुसार list?
ls -lhS.
Senior level
प्र. Production ला निष्काळजी rm -rf पासून कसं वाचवाल?
Least privilege, root shells नाहीत, backups आणि snapshots, immutable infra, scripts मधे set -u म्हणजे रिकामा variable rm -rf / होत नाही, code review.
प्र. Script मधे rm -rf $DIR/. काय बिघडू शकतं?
DIR रिकामा असेल तर rm -rf / होतं. ${DIR:?} आणि set -u वापरा.
प्र. मोठ्या folders साठी cp vs rsync?
rsync फक्त बदल copy करतो, resume करतो, progress दाखवतो, SSH वर चालतो. cp दर वेळी सगळं.
प्र. Disks पलीकडे mv slow आणि risky का?
Copy करून delete करतो. मधेच crash झाला तर अर्धा data. rsync करून check नंतर delete.
घरी करून बघा
- mkdir -p आणि brace expansion ने shop चं folder tree.
- Downloads मधे ls -lt आणि ls -lhS.
- खऱ्या rm आधी echo rm *.tmp.
सराव Tasks
Amravati Agro Market हा अमरावती मधला शेती व्यवसाय आहे. Anjali Thakre त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 30
सोपं मी कुठे?
का: चुकीच्या folder मधे delete नको.
काय करायचं: Amravati Agro Market server वर current folder print करा, सगळ्या symlinks resolve करून (physical path).
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं दुसऱ्या user चं home
का: दोन folders मधे झटपट.
काय करायचं: Tilde shortcut वापरून kavya user च्या home folder ला जा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Hidden files सह long list
का: .env files hidden.
काय करायचं: /etc/nginx मधलं सगळं, hidden files सह, long format आणि human sizes मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं नवीन आधी
का: आत्ता काय बदललं.
काय करायचं: /var/log/nginx long format मधे, नवीन files आधी.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Nested folders
का: एक command, पूर्ण tree.
काय करायचं: Parent folders सह amravatiagro/src/api बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं रिकामी file
का: Placeholders आणि markers.
काय करायचं: Current folder मधे README.md नावाची रिकामी file बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Folder copy
का: Folders ना recursive copy.
काय करायचं: site folder site-old ला copy करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं File rename
का: वेगळ्या rename ची गरज नाही.
काय करायचं: notes-v1.txt चं नाव notes-final.txt करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं प्रश्न विचारून delete
का: Linux मधे recycle bin नाही.
काय करायचं: old.log delete करा पण आधी confirmation विचारा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं रिकामा folder delete
का: Safe: रिकामा नसेल तर fail.
काय करायचं: रिकामा folder tmpdir काढा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं दुसऱ्या user चं home
का: Admins user folders तपासतात.
काय करायचं: tilde form वापरून deploy user च्या home folder ला जा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं तीन folders वर
का: खोल path मधून लवकर बाहेर.
काय करायचं: तुम्ही project मधे खोल आहात. एका cd ने तीन levels वर जा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Nested folders, verbose
का: Scripts ने काय बनवलं ते दाखवावं.
काय करायचं: नसलेल्या parents सह logs/2027/jan बनवा आणि बनलेला प्रत्येक folder print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं असेल तरच update
का: नको त्या files बनवू नका.
काय करायचं: report.csv चा time update करा पण नसेल तर बनवू नका.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Folder verbose copy
का: Copy होणारी प्रत्येक file दिसावी.
काय करायचं: themes folder themes-bak ला copy करा आणि प्रत्येक file print करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Folder मधे हलवा
का: HR files एकत्र.
काय करायचं: salary.xlsx आधी असलेल्या hr folder मधे हलवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं नसेल तरी error नाही
का: Cleanup scripts थांबू नयेत.
काय करायचं: app.pid न विचारता delete करा, नसेल तरी error नको.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम मोठ्या आधी
का: जागा खाणाऱ्या files.
काय करायचं: /srv/amravatiagro/uploads long format, human sizes, मोठ्या आधी.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Attributes ठेवून backup
का: Owner आणि time तसेच राहायला हवेत.
काय करायचं: /etc/nginx folder /root/nginx-backup ला permissions, owners आणि times ठेवून copy करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम विचारून copy
का: चुकून overwrite नको.
काय करायचं: invoice-q2.pdf /mnt/team/ मधे copy करा पण overwrite आधी विचारा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Overwrite शिवाय move
का: असलेल्या files वाचवा.
काय करायचं: site.new site.conf ला move करा पण site.conf असेल तर कधी overwrite नको.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Folder tree delete
का: जुने old-dists जागा घेतात.
काय करायचं: old-dist folder आणि आतलं सगळं delete करा, एकदा विचारून.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम बनवतानाच private folder
का: Others वाचू शकतील असा वेळ नाही.
काय करायचं: vault folder बनवा जो फक्त owner वापरू शकेल (owner ला rwx, others ना काही नाही), एका mkdir command मधे.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Timestamp copy
का: Build tools sync मधे.
काय करायचं: site.cfg ला master.cfg सारखे timestamps द्या.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम फक्त access time
का: atime वरचा cleanup test.
काय करायचं: stats.log चा फक्त access time आत्ताचा करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Details जपून copy
का: Audits ना original dates.
काय करायचं: contract.pdf /archive/ मधे copy करा, mode, owner, timestamps जपून.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Folder copy, आधी विचारा
का: Live files चुकून overwrite नको.
काय करायचं: assets folder public/ मधे copy करा पण कोणतीही file overwrite करण्याआधी विचारा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Folder delete, प्रत्येकाला विचारा
का: काळजीपूर्वक cleanup.
काय करायचं: tmp-build folder delete करा आणि प्रत्येक file आधी विचारा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम रिकामी chain काढा
का: रिकामे parents पण.
काय करायचं: cache/a/b रिकामा आहे. एका rmdir ने b, मग a, मग cache काढा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
अवघड -x नावाची file delete
का: - ने सुरू नावं commands ना गोंधळतात.
काय करायचं: Current folder मधली -x नावाची file delete करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
16. संबंधित chapters
- DevOps साठी Linux Ops Refresh
- Automation साठी Bash Scripting
- Linux grep आणि find Commands Examples सह
- Linux Servers मध्ये Passwordless SSH
थोडक्यात सांगायचं तर
- pwd, cd, ls ने बघा.
- mkdir -p आणि touch ने बनवा.
- cp -a ने safe copy, mv ने move/rename.
- rm कायमचं: echo ने preview, -i किंवा -I.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.