Komanda Linux rm: Gjithçka që duhet të dini
Përmbledhje: Komanda rm ju lejon të fshini një skedar ose drejtori që kalon emrin e tij: rm filename ose rm -d directory. Ju gjithashtu mund të përfshini një shteg drejtorie. Nëse ka skedarë në drejtori, përdorni opsionin -r rm -r directory për të fshirë skedarët dhe dosjet në mënyrë rekursive.
Komanda Linux rm
fshin skedarët dhe drejtoritë. Për ta përdorur këtë mjet në mënyrë të sigurt, duhet të jeni të sigurt se çfarë do të ndodhë kur të shtypni Enter. Ja çfarë duhet të dini.
Çfarë është komanda rm në Linux?
Komanda Linux rm
është kryesisht për fshirjen e skedarëve. Është ai që shumica e njerëzve hasin menjëherë pasi fillojnë të përdorin Linux. Vetëm për shkak të të qenit një i sapoardhur në Linux, ka të ngjarë të bëni gabime. Do të krijoni ose kopjoni skedarë rastësisht, ose me emrin e gabuar ose në vendin e gabuar. E gjithë kjo është pjesë e kurbës së mësimit të linjës së komandës. Operacionet e pastrimit për gabime të tilla përfshijnë rm
.
Komanda rm
mund të fshijë skedarë, grupe skedarësh, drejtori ose pemë të plota të drejtorive. Kjo është arsyeja pse duhet të përdoret me kujdes. Përdorimi i rm
nuk është i vështirë, por dënimi për dështim është i lartë.
Kur një skedar fshihet me rm
, ai zhduket. Nuk zhvendoset në plehra. Zhduket menjëherë. Kjo nuk do të thotë që ju duhet të shmangni përdorimin e rm
. Por për ta përdorur atë në mënyrë të sigurt, duhet të jeni të vetëdijshëm për atë që mund të bëjë dhe të siguroheni që po e përdorni siç duhet.
Disa mjete janë më të rrezikshme se të tjerët, dhe shumë më pak falin gabimet. Kjo është arsyeja pse nuk ka pasur kurrë një film të quajtur Masakra e Teksasit me pikëllim. rm
nuk është një pikëllim, është padyshim një sharrë elektrike me zinxhir.
Njerëzit përdorin sharrë elektrike me zinxhir gjatë gjithë ditës çdo ditë, dhe për sa kohë që e përdorin një të tillë me përgjegjësi dhe kujdes, ata janë mirë. Është e njëjta marrëveshje me rm
. Kur tërhiqni rm
nga çanta juaj e veglave, duhet të ngadalësoni dhe kontrolloni, pastaj kontrolloni dy herë linjën tuaj të komandës.
Komanda rm
është e ekzekutueshme, nuk është pjesë e guaskës. Pra, megjithëse ne po përdorim Bash këtu, ai është rm
standard i Linux-it, jo një rm
i veçantë Bash.
Si të fshini skedarët me rm
Mënyra më e thjeshtë për të përdorur rm
është të jepni emrin e një skedari që dëshironi të fshini.
rm config.gc
Ju jeni kthyer në heshtje në vijën e komandës. rm
miraton qëndrimin klasik dhe të mbyllur të Linux-it që nëse nuk ankohet për asgjë, mund të supozoni se bëri atë që keni kërkuar. Dhënia e një emri skedari si ky bën që rm
të kërkojë skedarin në drejtorinë aktuale të punës.
Ju mund të jepni emra të shumëfishtë skedarësh në vijën e komandës. Ju gjithashtu mund të siguroni një shteg direktoriumi nëse një skedar që dëshironi të fshini nuk është në drejtorinë aktuale.
rm memlog.sh /home/dave/dev-archive/config.gc
Përsëri, asgjë nuk raportohet nëse rm
arrin të fshijë skedarët e specifikuar.
Përdorimi i shkronjave të egra me rm
Shenjat e egra ju lejojnë të specifikoni grupe ose koleksione skedarësh pa pasur nevojë të listoni skedarët individualë në vijën e komandës.
Ylli *
përfaqëson çdo sekuencë karakteresh, duke përfshirë asnjë. Pikëpyetja ?
përfaqëson çdo karakter të vetëm.
Për të kontrolluar nëse shkronjat tuaja të egra do të përputhen me atë që prisni dhe asgjë më shumë, mund t'i përdorni me ls përpara se t'i përdorni me rm.
Për të fshirë të gjithë skedarët PNG në drejtorinë aktuale, përdorni *.png. Kjo do të thotë se çdo sekuencë karakteresh e ndjekur nga .png do të përputhet. Kur skedarët janë fshirë, ne mund të përdorim ls
për të verifikuar që ato janë zhdukur.
ls *.png
rm *.png
ls *.png
Në kompjuterin tonë testues, ne kemi dy skedarë në drejtorinë aktuale me emra që fillojnë me config.
Ne jemi në gjendje t'i fshijmë të dyja këto duke përdorur karakterin e yllit. Përputhet me të dy skedarët sepse rm
po kërkon emrat e skedarëve që fillojnë me config, të ndjekur nga çdo sekuencë karakteresh. Në një skedar, sekuenca e karaktereve është .sl3, zgjerimi i emrit të skedarit. Emri tjetër i skedarit nuk ka karaktere pas konfigurimit, por për shkak se ylli përputhet me ndonjë karakter ose asnjë karakter, përputhet edhe me atë emër skedari.
ls config*
rm config*
ls config*
Ju mund të përdorni pikëpyetjen në dyshe. Kjo do të fshijë skedarët që kanë zgjerime skedarësh me dy karaktere saktësisht.
ls *.??
rm *.??
ls *.??
Duke përdorur rm në mënyrë interaktive
Një mënyrë e sigurt për të përdorur rm
është ta detyroni atë të kërkojë konfirmim përpara se të fshijë çdo skedar. Opsioni -i
(interaktiv) ju lejon ta bëni këtë. Kur e shtoni këtë opsion në linjën tuaj të komandës, rm
do t'ju kërkojë përpara çdo fshirjeje, duke ju dhënë një shans për të kapërcyer veprimet që nuk i kishit menduar.
Ne do të përdorim opsionin -i
(interaktiv) në këtë komandë. Përpiqet të fshijë të gjithë skedarët me një zgjatje skedari të vetëm karakteresh.
rm -i *.?
Çdo skedar që përputhet paraqitet me radhë. Nëse përgjigjeni y ose Y, skedari fshihet. Nëse përgjigjeni n, skedari ruhet. Në fakt, nëse përgjigjeni me ndonjë gjë tjetër përveç y ose y, skedari ruhet. Thjesht mund të shtypni Enter dhe skedari ruhet.
Mund të punoni shpejt me listën tuaj të skedarëve, duke fshirë ose kapërcyer skedarët për të zgjedhur ato që dëshironi të hiqni. Siç do ta shohim, ju mund të përdorni opsionin i-
(interaktiv) me opsionet e tjera rm
.
Linux Commands | ||
Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts
Duke përdorur opsionin rm Force
Nëse përpiqeni të fshini një skedar që është vetëm për lexim, rm
ju kërkon konfirmim përpara se të fshijë skedarin. Ky është një rrjet i mirë sigurie, por ai që mund të bëhet i lodhshëm nëse keni shumë skedarë për të fshirë.
rm geonames.sl3
Opsioni -f
(force) udhëzon rm
që të mos kërkojë kurrë. Ju po i thoni Po, fshiji të gjithë skedarët për të cilët normalisht do të më kërkonit. Ai gjithashtu parandalon rm
të ankohet për skedarë që nuk ekzistojnë.
rm -f geonames.sl3
Opsioni -f
(force) përdoret shpesh kur jeni duke fshirë një grup të ndërlidhur skedarësh dhe drejtorish.
Fshirja e drejtorive me rm
Komanda rm
mund të heqë opsionalisht edhe drejtoritë, së bashku me skedarët që ato përmbajnë. Kjo është e ngjashme me komandën rmdir
, por rmdir
nuk mund të fshijë drejtoritë me skedarë në to. Ajo fshin vetëm drejtoritë boshe. Komanda rm
mund të fshijë me lehtësi drejtoritë që përmbajnë skedarë dhe drejtori të tjera.
Fshirja e një drejtorie është e ngjashme me fshirjen e një skedari. Ne japim emrin e drejtorisë në vijën e komandës. Duhet të përfshijmë opsionin -d
(directory). Ashtu si bëmë kur fshinim skedarët, mund të japim emrin e disa drejtorive. Ne mund të ofrojmë një shteg drejt drejtorisë që nuk është në drejtorinë aktuale të punës.
rm -d old-projects
Nëse drejtoria përmban skedarë, kjo do të dështojë.
Për të fshirë një drejtori dhe përmbajtjen e saj, përdorni flamurin -r
(rekurziv). Kjo fshin drejtorinë, skedarët e saj dhe çdo direktori të ndërlidhur që përmban.
rm -d archive
rm -r archive
Komanda e dytë ka sukses.
Për të kaluar rm
në modalitetin e sharrës me zinxhir të ndezur të plotë, ne mund të kombinojmë opsionet -r
(rekurzive) dhe -f
(force). Kjo i thotë rm
të fshijë në mënyrë rekursive të gjithë skedarët dhe drejtoritë në një pemë direktorie, edhe nëse ato janë vetëm për lexim dhe pa na nxitur ndonjëherë.
Në kompjuterin tonë të testimit, ne kemi një direktori të quajtur kodi i migruar. Ai përmban skedarë dhe një drejtori tjetër të quajtur 6502. Drejtoria 6502 përmban gjithashtu skedarë dhe një drejtori tjetër të quajtur ASM. Ka edhe skedarë në atë drejtori. Disa nga skedarët janë vetëm për lexim.
Ne do të përfshijmë gjithashtu komandën -v
(me fjalë) në mënyrë që rm
të na tregojë se çfarë po bën.
rm -rfv migrated-code
Në dalje mund të shohim se skedarët janë hequr dhe, kur ato janë bosh, edhe drejtoritë hiqen.
Shmangia e gabimeve gjatë përdorimit të rm
Hapësirat dhe karakteret e tjera të çuditshme në emrat e skedarëve mund të paraqesin probleme. Emrat e skedarëve që fillojnë me vizën -
, për shembull, mund të gabohen për opsionet e linjës së komandës. Nëse kemi një skedar të quajtur “-contributors.txt”, rm
do të përpiqet të përpunojë emrin si një sekuencë opsionesh të linjës së komandës.
Për shkak se rm
nuk ka një opsion të quajtur -c
, analizimi i linjës së komandës dështon dhe skedari nuk fshihet. Për të fshirë skedarin, duhet t'i paraprini ./ për të siguruar një shteg për të.
rm -contributors.txt
rm ./-contributors.txt
Hapësirat në emrat e skedarëve janë gjithashtu problematike. Ose citoni të gjithë emrin e skedarit, ose përdorni plotësimin e skedës për të futur emrin e skedarit në vijën e komandës për ju, duke i shpëtuar hapësirave ndërsa e bën këtë. Nëse nuk përdorni asnjërën nga këto opsione, rm
do ta trajtojë çdo pjesë të emrit të skedarit si një skedar individual.
Këtu, ne kemi dy skedarë, një i quajtur backup dhe një i quajtur backup për fshirje. Ne mund ta demonstrojmë problemin me këta emra skedarësh, duke përdorur ls
. Nëse përpiqemi të përdorim ls
në skedarin backup to delete dhe nuk i shpëtojmë ose citojmë emrin e skedarit, komanda dështon.
ls -hl backup to delete
ls
ankohet se nuk mund të gjejë skedarë të quajtur to ose delete, por gjen një skedar të quajtur backup. Kjo është ajo që do të bëjë edhe rm
. Do të ankohet për dy skedarë që mungojnë dhe më pas do të fshijë skedarin e quajtur backup, që nuk është ajo që ne donim.
rm backup to delete
rm
mendon se po punon me tre skedarë, backup, to dhe delete. Ai ankohet se nuk mund të gjejë to dhe delete, por gjen dhe fshin në heshtje backup.
Citimi i emrit të skedarit lejon rm
të fshijë skedarin e duhur.
rm 'backup to delete'
Ju gjithashtu mund t'i ikni hapësirave me prerje të pasme \
, si kjo:
rm backup\ to\ delete
Nëse përdorni plotësimin e skedës për të futur emrat e skedarëve tuaj, ata do të shmangen automatikisht, nëse kërkohet.
Çfarë PPE?
Ndryshe nga sharrat me zinxhir të botës reale, nuk ka pajisje mbrojtëse personale që mund të përdorni me rm
.
Ajo që mund të bëni është të kontrolloni sintaksën tuaj me ls
përpara se ta provoni me rm
dhe të përdorni modalitetin interaktiv në mënyrë që të vendosni se çfarë fshihet.
Përveç kësaj, është praktikë derisa të ndiheni rehat dhe të sigurt. Mënyra më e sigurt për ta bërë këtë është të kopjoni një grup skedarësh sakrifikues në një drejtori dhe të praktikoni ato.