जवाबों:
आप के साथ कुछ मनगढ़ंत कर सकते हैं -printf
, लेकिन सबसे आसान -print
अंत में निपटने के लिए है । यह दिखाएगा कि क्या सफलतापूर्वक हटा दिया गया था।
find
प्यार सिर्फ एक और थोड़ा बढ़ गया। धन्यवाद :)
find -L . -type l -delete -print
कैसे के बारे में सिर्फ rm -vf
क्रिया rm उत्पादन के लिए उपयोग कर रहा है।
$ touch file1 file2 file3
$ find . -name "file?" -exec rm -vf {} \;
removed `./file2'
removed `./file3'
removed `./file1'
rm
अच्छा है, लेकिन अगर मैंने इसे किसी और चीज़ से बदल दिया है, तो मैं अब नहीं देख सकता कि फाइलों पर क्या काम किया जा रहा है (जब तक कि मैं echo
अंदर उपयोग न करूँ -exec
)
ऐसा भी है find -D xxxx
जो कुछ मामलों में मदद कर सकता है।
$ find -D help
Valid arguments for -D:
help Explain the various -D options
tree Display the expression tree
search Navigate the directory tree verbosely
stat Trace calls to stat(2) and lstat(2)
rates Indicate how often each predicate succeeded
opt Show diagnostic information relating to optimisation
exec Show diagnostic information relating to -exec, -execdir, -ok and -okdir
नीचे दो उदाहरण दिए गए हैं find -D search
:
आरएचईएल 6.3 ( find
v4.4) का उपयोग करना :
$ mkdir -p aa/bb
$ touch aa/11 aa/22 aa/33 aa/bb/44 aa/bb/55
$ find -D search aa -type f -delete
consider_visiting: fts_info=FTS_D , fts_level= 0, prev_depth=-2147483648 fts_path=`aa', fts_accpath=`aa'
consider_visiting: fts_info=FTS_D , fts_level= 1, prev_depth=0 fts_path=`aa/bb', fts_accpath=`bb'
consider_visiting: fts_info=FTS_NSOK, fts_level= 2, prev_depth=1 fts_path=`aa/bb/55', fts_accpath=`55'
consider_visiting: fts_info=FTS_NSOK, fts_level= 2, prev_depth=2 fts_path=`aa/bb/44', fts_accpath=`44'
consider_visiting: fts_info=FTS_DP, fts_level= 1, prev_depth=2 fts_path=`aa/bb', fts_accpath=`bb'
consider_visiting: fts_info=FTS_NSOK, fts_level= 1, prev_depth=1 fts_path=`aa/22', fts_accpath=`22'
consider_visiting: fts_info=FTS_NSOK, fts_level= 1, prev_depth=1 fts_path=`aa/33', fts_accpath=`33'
consider_visiting: fts_info=FTS_NSOK, fts_level= 1, prev_depth=1 fts_path=`aa/11', fts_accpath=`11'
consider_visiting: fts_info=FTS_DP, fts_level= 0, prev_depth=1 fts_path=`aa', fts_accpath=`aa'
$ find --version
find (GNU findutils) 4.4.2
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Eric B. Decker, James Youngman, and Kevin Dalley.
Built using GNU gnulib version e5573b1bad88bfabcda181b9e0125fb0c52b7d3b
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION SELINUX FTS() CBO(level=0)
साइगविन 1.7 ( find
4.5) का उपयोग करना :
$ mkdir -p aa/bb
$ touch aa/11 aa/22 aa/33 aa/bb/44 aa/bb/55
$ find -D search aa -type f -delete
consider_visiting (early): 'aa': fts_info=FTS_D , fts_level= 0, prev_depth=-2147483648 fts_path='aa', fts_accpath='aa'
consider_visiting (late): 'aa': fts_info=FTS_D , isdir=1 ignore=1 have_stat=1 have_type=1
consider_visiting (early): 'aa/11': fts_info=FTS_NSOK, fts_level= 1, prev_depth=0 fts_path='aa/11', fts_accpath='11'
consider_visiting (late): 'aa/11': fts_info=FTS_NSOK, isdir=0 ignore=0 have_stat=0 have_type=1
consider_visiting (early): 'aa/22': fts_info=FTS_NSOK, fts_level= 1, prev_depth=1 fts_path='aa/22', fts_accpath='22'
consider_visiting (late): 'aa/22': fts_info=FTS_NSOK, isdir=0 ignore=0 have_stat=0 have_type=1
consider_visiting (early): 'aa/33': fts_info=FTS_NSOK, fts_level= 1, prev_depth=1 fts_path='aa/33', fts_accpath='33'
consider_visiting (late): 'aa/33': fts_info=FTS_NSOK, isdir=0 ignore=0 have_stat=0 have_type=1
consider_visiting (early): 'aa/bb': fts_info=FTS_D , fts_level= 1, prev_depth=1 fts_path='aa/bb', fts_accpath='bb'
consider_visiting (late): 'aa/bb': fts_info=FTS_D , isdir=1 ignore=1 have_stat=1 have_type=1
consider_visiting (early): 'aa/bb/44': fts_info=FTS_NSOK, fts_level= 2, prev_depth=1 fts_path='aa/bb/44', fts_accpath='44'
consider_visiting (late): 'aa/bb/44': fts_info=FTS_NSOK, isdir=0 ignore=0 have_stat=0 have_type=1
consider_visiting (early): 'aa/bb/55': fts_info=FTS_NSOK, fts_level= 2, prev_depth=2 fts_path='aa/bb/55', fts_accpath='55'
consider_visiting (late): 'aa/bb/55': fts_info=FTS_NSOK, isdir=0 ignore=0 have_stat=0 have_type=1
consider_visiting (early): 'aa/bb': fts_info=FTS_DP, fts_level= 1, prev_depth=2 fts_path='aa/bb', fts_accpath='bb'
consider_visiting (late): 'aa/bb': fts_info=FTS_DP, isdir=1 ignore=0 have_stat=1 have_type=1
consider_visiting (early): 'aa': fts_info=FTS_DP, fts_level= 0, prev_depth=1 fts_path='aa', fts_accpath='aa'
consider_visiting (late): 'aa': fts_info=FTS_DP, isdir=1 ignore=0 have_stat=1 have_type=1
$ find --version
find (GNU findutils) 4.5.11
Packaged by Cygwin (4.5.11-1)
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Eric B. Decker, James Youngman, and Kevin Dalley.
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION FTS(FTS_CWDFD) CBO(level=2)
@ ह्लावदव का उत्तर मेरे लिए पर्याप्त था लेकिन मैंने अपने उपयोग के लिए कुछ संशोधन किए
find . -name 'application*.yml' -print0 | xargs -0 -I %% bash -c 'rm -v "$1"' -- "%%"
व्याख्या
pattern
null
अलग, महत्वपूर्ण यदि आपके पास रिक्त स्थान या असामान्य वर्ण के साथ फ़ाइल नाम हैxargs
null
अलग से पढ़ें , प्रत्येक रिकॉर्ड प्लेसहोल्डर को सेट करें %%
यह हर बार यह सुनिश्चित करता है कि यह केवल एक तर्क का उपयोग करता हैbash
कमांड, एक-लाइनर, कुछ भी अंदर जाता है, एकल उद्धृत होना चाहिए '
--
इसके बाद मैं जो कुछ भी करता हूं उसका अर्थ xargs
या bash
विकल्प नहीं है, बल्कि मेरे एक-लाइनर स्क्रिप्ट के लिए स्थितीय मापदंड हैंbash
स्क्रिप्ट के अंदर , आप स्थिति तर्क संख्या # 1 के %%
रूप में पहुंच सकते हैं$1
नोट: आप किसी %%
भी चीज़ से बदल सकते हैं , बस यह सुनिश्चित कर लें कि आपको किसी प्लेसहोल्डर के अलावा किसी और चीज़ के लिए इसका इस्तेमाल करने की ज़रूरत नहीं है। डॉलर का उपयोग करना $
या @
अच्छा नहीं हो सकता है, जब तक कि यह डबल है @
की तरह @@
।
find
, इसलिए अंगूठे