Paano recursively tanggalin ang isang uri ng file sa Linux sa isang direktoryo at lahat ng mga subdirectory nito

Recursively tanggalin ang isang uri ng file

Tiyak na sa ilang okasyon napatunayan mo na mayroon kang isang walang silbi na uri ng file sa maraming mga folder, na tumatagal ng kaunting espasyo ngunit hindi mo lang gusto ito sa iyong computer. Halimbawa, sa macOS ang ilang mga file ay nilikha .DS_Store na nagse-save ng impormasyon tungkol sa icon ng isang folder, laki at posisyon nito, at sa Windows mayroong desktop.ini na katumbas. Ano ang gagawin natin kung mayroon kaming isang direktoryo na puno ng mga subdirectory at nais naming tanggalin ang mga ito o iba pang mga uri ng file? Ang dapat nating gawin ay recursively burahin Ang bawat isa sa kanila.

Ito ay isang bagay na maaari nating gawin sa lahat ng uri ng mga file. Halimbawa, kung mayroon kaming isang hard drive na puno ng musika, mayroon kaming isang player na na-download ang mga pabalat at hindi namin nais na i-save ang mga ito, maaari naming gamitin ang parehong utos na idetalye namin sa ibaba upang tanggalin ang mga ito. Siyempre, isinasaalang-alang ang recursively na tatanggalin namin ang mga file ng direktoryo at ang kanilang mga subdirectory sa terminal at na mawawala magpakailanman, hindi masakit kung mag-ingat at / o gumawa ng isang pagsubok bago tanggalin ang lahat ng nais naming tanggalin.

Recursively tanggalin ang mga file ng isang uri mula sa terminal

Ang mga utos para sa halimbawang macOS .DS_Store file ay magiging tulad ng sumusunod:

cd ruta/a/directorio
find . -name '*.DS_Store' -type f -delete

Sa mga naunang utos, ilalagay kami ng una sa folder kung saan nais naming magsimula, iyon ay, ang isa na naglalaman ng lahat ng .DS_Store na mga file na nais naming tanggalin. Ang pangalawa ay ang tatanggalin ang lahat ng .DS_Store na mga file mula sa unang folder at mga subfolder nito o mga direktoryo. Kung ang nais namin ay tanggalin ang mga larawan mula sa mga naunang nabanggit na folder ng musika, dapat naming ilagay ang uri ng extension sa pagitan ng mga marka ng panipi, tulad ng '* .jpg'.

Upang maging 100% matapat, ito ay isang bagay na gagawin ko sa araw na ihinto ko ang paggamit ng Cantata bilang default na music player. Lumilikha at nagtatago si Cantata ng mga file ng impormasyon na may parehong pangalan tulad ng mga kanta na may isang tuldok at isang mababang bar sa harap ng mga ito (halimbawa, ._Song). Kapag kailangan ko ito, ang utos na gagamitin ko ay hanapin -pangalan ng '._ *' -type f -delete.

Nakatulong ba sa iyo ang maliit na patnubay na ito upang muling matanggal ang mga file mula sa terminal?

Utos ng Grep
Kaugnay na artikulo:
Grep command: malakas na tool upang makahanap ng teksto mula sa Terminal

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Sebastian Castro dijo

    Salamat, ngunit may isang error sa iyong code. Kailangan mong gamitin ang regular na expression na '*', iyon ay '* .DS_STORE'. Inirerekumenda kong iwasto mo ito. Kaya, para sa mga may mas kaunting kaalaman sa bash, ang code na iyong ibinigay ay hindi gagana para sa kanila. Pagbati po!