Ninawezaje kufuta tena faili zote za kiendelezi maalum kwenye saraka ya sasa?


Nenda kwa jibu lililokubaliwa


Je! Ninawezaje kufuta faili zote kwa kiendelezi maalum (km .bak ) kutoka saraka ya sasa na folda zote kwa kutumia safu moja ya amri? Kwa ufupi, ninaogopa kutumia rm kwani niliitumia vibaya mara moja na sasa ninahitaji ushauri.


551





2013-11-15




Idadi ya majibu: 8


Huna hata haja ya kutumia rm katika kesi hii ikiwa unaogopa. Tumia find :

 find . -name "*.bak" -type f -delete
 

Lakini tumia kwa tahadhari. Run kwanza:

 find . -name "*.bak" -type f
 

kuona hasa ni faili gani utaondoa.

Pia, hakikisha hiyo -delete ndiyo hoja ya mwisho katika amri yako. Ukiweka mbele ya -name *.bak argument , itafuta kila kitu .

Tazama man find na man rm kwa habari zaidi na tazama pia swali hili linalohusiana kwenye SE:


870


2013-11-15

 find . -name "*.bak" -type f -print0 | xargs -0 /bin/rm -f
 

41


2014-04-04

Kwanza kukimbia amri shopt -s globstar . Unaweza kuiendesha hiyo kwenye mstari wa amri, na itakuwa na athari kwenye tu kwenye dirisha la ganda. Unaweza kuiweka yako .bashrc , na kisha maganda yote yaliyoanza kuokota yataichukua. Athari ya amri hiyo ni kutengeneza **/ faili za saraka katika saraka ya sasa na subdirectories zake kwa kurudiwa (kwa msingi, **/ inamaanisha kitu sawa na */ : tu katika subdirectories za karibu). Halafu:

 rm **/*.bak
 

(au gvfs-trash **/*.bak au unayo nini).


35



Kufuta faili sio jambo ambalo unapaswa kutumia rm . Hapa kuna njia mbadala:

 sudo apt-get install gvfs     # install a tool that allows you to put stuff in the trash
alias "trash"="gvfs-trash"    # you can also put this in .bash_aliases or simply use the command without alias
trash *.bak                   # trash the files (thus moving them to the trash bin)
 

Kama Flimm anasema katika maoni:

Kifurushi trash-cli hufanya kitu sawa na gvfs-trash bila utegemezi kwenye gvfs.

Kwa hivyo:

 sudo apt-get install trash-cli
 

Huna haja ya kufanya neno fupi kwa hili, kwa sababu trash-cli kifurushi hutoa amri trash , ambayo hufanya kile tunachotaka.

Kama Eliah Kagan anasema wazi katika maoni ya kina, unaweza pia kufanya matumizi haya kujirudia find . Kwa hali hiyo huwezi kutumia mageni, kwa hivyo amri zilizo chini zinafikiria kuwa umesanikisha trash-cli . Ninatoa muhtasari wa maoni ya Eliah:

Amri hii hupata na kuonyesha .bak faili zote na ulinganifu mahali popote kwenye saraka ya sasa au subdirectories zake au chini.

 find . -name '*.bak' -xtype f
 

Ili kuzifuta, ongeza amri -exec na trash amri:

 find . -name '*.bak' -xtype f -exec trash {} +
 

-xtype f huchagua faili na ulinganifu kwa faili, lakini sio folda. Ili kufuta folda za .bak pia, ondoa sehemu hiyo, na utumie -execdir , ambayo huepuka cannot trash non-existent makosa ya .bak faili zilizo ndani ya .bak saraka.

 find . -name '*.bak' -execdir trash {} +
 

22


2013-11-15

Ikiwa unataka kufuta faili zote za aina fulani, lakini folda 1 tu "kirefu" kutoka folda ya sasa:

 find . -maxdepth 2 -name "*.log" -type f -delete
 

-maxdepth 2 kwa sababu directory ya sasa " . " makosa kama folder kwanza.


5


2017-11-26

Jibu la haraka:

  • Futa faili zote kwa jina lililozingatiwa au chapisho la kurudia nyuma:

    find . -name '*.pyc' -type f -delete

  • Futa saraka zote na jina lililofikiriwa mara kwa mara:

     find ~ -path '*/__pycache__/*' -delete‍‍‍
    find ~ -type d -name '__pycache__' -empty -delete‍‍‍
     

    Kiasi ambacho hakijadhibitiwa sana, lakini kwa mstari mmoja:

     find ~ -path '*/__pycache__*' -delete
     

[ KUMBUKA ]:

d chaguo la saraka na f ni chaguo la faili.


1


2019-02-25

Ikiwa uko ndani ya git repo, unaweza kutumia:

 git clean -fdx
 

Hii inafuta faili na faili ambazo hazijasasishwa katika .gitignore.


0


2018-08-09

Ikiwa utataka kuangalia orodha kabla ya kufuta faili, unaweza kuisisitiza.

 find . -name "*.bak" -type f | xargs echo rm -rf
 

Hii itaorodhesha matokeo ya utaftaji ambayo yamepangwa kwa amri ya rm kupitia xargs. Mara tu ikiwa na hakika juu ya orodha unaweza kuacha kuamuru kwa amri ya hapo juu.

 find . -name "*.bak" -type f | xargs rm -rf
 

0


2019-11-25