Android

Paano alisin (tanggalin) ang direktoryo sa linux

Linux Command Line (11) Delete Files and Directories

Linux Command Line (11) Delete Files and Directories

Talaan ng mga Nilalaman:

Anonim

Mayroong maraming iba't ibang mga paraan upang maalis ang mga direktoryo sa mga sistema ng Linux. Kung gumagamit ka ng isang tagapamahala ng file ng Desktop tulad ng Gnome's Files o KDE's Dolphin pagkatapos maaari mong tanggalin ang mga file at direktoryo gamit ang interface ng user ng graphic na manager. Ngunit, kung nagtatrabaho ka sa isang headless server o nais na alisin ang maraming mga direktoryo nang sabay-sabay ang iyong pinakamahusay na pagpipilian ay upang tanggalin ang mga direktoryo (folder) mula sa linya ng utos.

, ipapaliwanag namin kung paano tatanggalin ang mga direktoryo sa Linux gamit ang rmdir , rm at find utos.

Bago ka magsimula

Kapag tinanggal mo ang isang direktoryo gamit ang iyong tagapamahala ng file ng Desktop ang direktoryo ay talagang inilipat sa Trash at madaling mabawi.

Maging maingat kapag nag-aalis ng mga file o direktoryo mula sa linya ng utos, dahil kapag natanggal ang direktoryo gamit ang mga utos ay ipinaliwanag hindi ito ganap na mababawi.

Sa karamihan sa mga filesystem ng Linux, ang pagtanggal ng isang direktoryo ay nangangailangan ng pahintulot sa pagsulat sa direktoryo at ang nilalaman nito. Kung hindi, makakakuha ka ng error na "Hindi pinahihintulutan".

Ang mga pangalan ng direktoryo na may isang puwang sa kanila ay dapat na makatakas na may isang pag-urong ( / ).

Pag-alis ng Mga Direktoryo na may rmdir

rmdir ay isang utility-line utility para sa pagtanggal ng mga walang laman na direktoryo. Ito ay kapaki-pakinabang kapag nais mong tanggalin ang isang direktoryo kung ito ay walang laman, nang hindi kinakailangang suriin kung ang direktoryo ay walang laman o hindi.

Upang tanggalin ang isang direktoryo na may rmdir , i-type ang utos na sinusundan ng pangalan ng direktoryo na nais mong alisin. Halimbawa, upang tanggalin ang isang direktoryo na nagngangalang dir1 iyong i-type:

rmdir dir1

Kung ang direktoryo ay hindi walang laman makakakuha ka ng sumusunod na error:

rmdir: failed to remove 'dir1': No such file or directory

Sa kasong ito, kakailanganin mong gumamit ng rm utos o mano-mano alisin ang mga nilalaman ng direktoryo bago mo ito matanggal.

Pag-alis ng Mga Direktoryo na may rm

rm ay isang utos na linya ng utos para sa pagtanggal ng mga file at direktoryo. Hindi tulad ng rmdir ang rm utos ay maaaring tanggalin ang parehong mga walang laman at di-walang laman na mga direktoryo.

Bilang default, kapag ginamit nang walang anumang pagpipilian rm ay hindi nag-aalis ng mga direktoryo. Upang tanggalin ang isang walang laman na direktoryo, gamitin ang pagpipilian na -d ( --dir ) at upang tanggalin ang isang direktoryo na walang laman at lahat ng mga nilalaman nito ay gumagamit ng opsyon na -r ( --recursive o -R ).

Halimbawa, upang tanggalin ang isang direktoryo na pinangalanan dir1 kasama ang lahat ng mga nilalaman nito na nais mong i-type:

rm -r dir1

Kung ang isang direktoryo o isang file sa loob ng direktoryo ay protektado ng pagsusulat, sasabihan ka upang kumpirmahin ang pagtanggal. Upang alisin ang isang direktoryo nang hindi sinenyasan gamitin ang -f pagpipilian:

rm -rf dir1

Upang alisin ang maraming direktoryo nang sabay-sabay, gamitin ang rm utos na sinusundan ng mga pangalan ng mga pangalan ng direktoryo na pinaghiwalay ng puwang. Aalisin ng utos sa ibaba ang bawat nakalista na direktoryo at ang kanilang mga nilalaman:

rm -r dir1 dir2 dir3

Ang opsyon na-ay nagsasabi sa rm mag-prompt ka upang kumpirmahin ang pagtanggal ng bawat subdirektoryo at file. Kung ang direktoryo ay naglalaman ng maraming mga file na ito ay maaaring maging medyo nakakainis kaya maaari mong isaalang-alang ang paggamit ng I-opsyon kung ano ang mag-udyok sa iyo ng isang beses lamang bago magpatuloy sa pagtanggal.

rm -rI dir1

Upang alisin ang uri ng direktoryo y at pindutin ang Enter .

rm: remove 1 argument recursively? y

Maaari ka ring gumamit ng mga regular na pagpapalawak upang tumugma at matanggal ang maraming direktoryo. Halimbawa, upang alisin ang lahat ng mga direktoryo ng unang antas sa kasalukuyang direktoryo na nagtatapos sa _bak , gagamitin mo ang sumusunod na utos:

rm -r *_bak

Ang paggamit ng mga regular na pagpapalawak kapag ang pag-alis ng mga direktoryo ay maaaring mapanganib. Inirerekomenda muna na ilista ang mga direktoryo sa utos ng ls upang makita mo kung ano ang mga direktoryo na matatanggal bago patakbuhin ang utos ng rm .

Pag-alis ng Mga Direktoryo sa find

find ay isang utos na linya ng utos na nagbibigay-daan sa iyo upang maghanap para sa mga file at direktoryo batay sa isang naibigay na expression at magsagawa ng isang aksyon sa bawat file na direktoryo.

Ang pinaka-karaniwang senaryo ay ang paggamit ng find command upang tanggalin ang mga direktoryo batay sa isang pattern. Halimbawa, upang tanggalin ang lahat ng mga direktoryo na nagtatapos sa _cache sa kasalukuyang direktoryo ng pagtatrabaho na iyong tatakbo:

find. -type d -name '*_cache' -exec rm -r {} +

Suriin natin ang utos sa itaas:

  • /dir - pabalik na maghanap sa kasalukuyang direktoryo ng nagtatrabaho ( . ). -type d - Pinipigilan ang paghahanap sa mga direktoryo. -name '*_cache' - paghahanap lamang ng mga direktoryo na nagtatapos sa _cache -exec - nagsasagawa ng isang panlabas na utos na may opsyonal na mga argumento, sa kasong ito na rm -r . {} + - Inilalagay ang nahanap na mga file hanggang sa dulo ng utos ng rm .

Tinatanggal ang lahat ng mga walang laman na direktoryo

Upang alisin ang lahat ng mga walang laman na direktoryo sa isang puno ng direktoryo na gagamitin mo:

find /dir -type d -empty -delete

Narito ang isang paliwanag para sa mga pagpipilian na ginamit:

  • /dir - recursively maghanap sa direktoryo /dir . -type d - Pinipigilan ang paghahanap sa mga direktoryo. -empty - pinipigilan lamang ang paghahanap sa mga walang laman na direktoryo. -delete - Tinatanggal ang lahat na natagpuan ng mga walang laman na direktoryo sa subtree. -delete maaaring tanggalin ang mga walang laman na direktoryo.

Gamitin ang pagpipilian na -delete may matinding pag-iingat. Sinusuri ang linya ng paghahanap ng utos bilang isang expression at kung idagdag mo muna ang pagpipilian na -delete , tatanggalin ng utos ang lahat sa ibaba ng mga panimulang punto na iyong tinukoy. Laging gamitin -delete bilang huling pagpipilian at bago matanggal, subukan ang utos muna nang walang pagpipilian na -delete .

/ bin / rm: Mahaba ang listahan ng argumento

Ang error na mensahe na ito ay lilitaw kapag ginamit mo ang rm utos upang alisin ang isang direktoryo na naglalaman ng isang malaking bilang ng mga file. Nangyayari ito dahil ang bilang ng mga file ay mas malaki kaysa sa limitasyon ng system sa laki ng argumento ng command line.

Mayroong maraming iba't ibang mga solusyon sa problemang ito. Halimbawa, maaari kang cd sa direktoryo at manu-mano o gumagamit ng isang loop upang alisin ang mga sub-direktoryo.

Ang pinakamadaling solusyon ay unang tanggalin ang lahat ng mga file sa loob ng direktoryo kasama ang find utos at pagkatapos ay tanggalin ang direktoryo:

find /dir -type f -delete && rm -r /dir

Konklusyon

Sa rm at find maaari mong tanggalin ang mga direktoryo batay sa iba't ibang pamantayan nang mabilis at mahusay.

Ang pagtanggal ng mga direktoryo ay isang simple at madaling proseso ngunit dapat kang mag-ingat na huwag tanggalin ang mahalagang data.

si rm rmdir makahanap ng terminal