कमांड को खोजने और फाइल करने के लिए कैसे? [बन्द है]


-3

मेरे शिक्षक ने मुझे खोज और फ़ाइल के संयोजन पर एक होमवर्क दिया

/ होम सबडायरेक्ट ट्री में सभी फाइलों को प्रदर्शित करने के लिए फाइंड एंड फाइल का उपयोग करें, साथ ही यह अनुमान लगाएं कि वे किस तरह की फाइल हैं।

मैंने पाइपलाइन का उपयोग करने की कोशिश की, लेकिन जैसा मैंने सोचा था कि यह काम नहीं कर रहा है। दोनों आदेशों को कैसे संयोजित करें पर कोई विचार? धन्यवाद! =)


2
क्या आपको ऐसा नहीं करना चाहिए?
निकोल हैमिल्टन

Geeze .... क्या आपने हम सभी से पूछने से पहले मैन पेजों को भी देखा findऔर fileकमांड किया? हम सभी सामान्य दिमाग में कठिन बिंदुओं पर मदद नहीं करते हैं, लेकिन आपको यह दिखाना होगा कि आपने थोड़ा काम भी किया है। आखिर अगर आप इस सामान पता नहीं है, कैसे आप बड़े रुपये बनाने जा रहे हैं .... :-)
mdpc

@mdpc: कौन सा छात्र मैनुअल / किताबें पढ़ता है?
TFM

उनमें से ज्यादातर जो पहले वर्ष (मार्केटिंग छात्रों को छोड़कर) में नहीं निकलते हैं।
हेन्स

जवाबों:


1

यहाँ एक संकेत है। आप fileकमांड का उपयोग कमांड के तर्क के रूप में करते हैं find। नीचे मेरी findकमांड की मदद का आउटपुट है । "कार्रवाई" अनुभाग पर एक नज़र डालें कि आप fileकमांड के साथ कमांड का उपयोग कैसे कर सकते हैं find

Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]

actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>


0

आपको अपना होमवर्क करना चाहिए लेकिन वैसे भी आपकी समस्या है ...

find /home -type f -exec file {} \;

-प्रकार परिणाम निर्दिष्ट करता है (फ़ाइल के लिए f) -exec एक प्रोग्राम निष्पादित करता है {} फ़ाइल का नाम है


यह बहुत ही अक्षम है क्योंकि EACH फ़ाइल के लिए आप एक नई प्रक्रिया उत्पन्न करते हैं। सोचो यार सोचो ... और xargs का इस्तेमाल करो!
mdpc

@mdpc या GNU के findसाथ-exec file '{}' \+
slhck

0

बेहतर और अधिक कुशल समाधान:

 find /home -type f -print0 | xargs -0 file

उपरोक्त कार्यान्वयन खोज और लिनक्स कार्यान्वयन के बाद के संस्करण को मानता है। -प्रिंट0 उन मामलों के लिए अनुमति देता है जहां विशेष आरक्षित वर्ण फ़ाइल नाम में समाहित होते हैं ... आप SPACES की तरह जानते हैं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.