सवाल टर्मिनल में चल रहे आदेशों का आउटपुट


मैं फ़ाइलों को हटाने के लिए इस लाइन का उपयोग करता हूं

find . -type f -iname \*.vi -delete

और फाइलों को स्थानांतरित करने के लिए यह लाइन

find . -name "*.doc" -exec mv {} /path

मैं प्रक्रिया को कैसे देख सकता हूं, मेरा मतलब है कि मुझे कोई आउटपुट दिखाई नहीं देता है, और यह केवल तब दिखाता है जब प्रक्रिया पूरी हो जाती है।


3
2018-02-07 07:26


मूल


आप एक चूक गए हैं ; दूसरे उदाहरण में अंत में .. - heemayl


जवाब:


आप मूल रूप से शब्दशः सक्षम नहीं कर सकते हैं find

आपको उपयोग करने की ज़रूरत है rm -v साथ में findकी -exec के बजाय कार्रवाई findमूल कार्रवाई -delete:

find . -type f -iname \*.vi -exec rm -v {} +

दूसरे मामले में, उपयोग करें mv -v:

find . -name "*.doc" -exec mv -v {} /path \;

या और अच्छा:

find . -name "*.doc" -exec mv -vt /path {} +

दोनों मामलों में, -v बताता है rm/mv क्या किया जा रहा है यह कहने के लिए verbose बनने के लिए।


2
2018-02-07 07:32



बहुत बहुत धन्यवाद, बीटीडब्ल्यू इन आदेशों में एक से अधिक फाइल एक्सटेंशन दर्ज करने का कोई तरीका है? - Mohammad Alzorgan
@ मोहम्मद अलज़ोरगन बेशक..ये unix.stackexchange.com/q/15308/68757 - heemayl
आप मूल रूप से verbosity सक्षम कर सकते हैं -print - glenn jackman


बताने के लिए एक और तरीका है find सेवा मेरे print एक और कार्रवाई निष्पादित करने से पहले फ़ाइल नाम:

$ find . -maxdepth 2 -iname 'foo.txt'
./foo.txt
$ find . -maxdepth 2 -iname 'foo.txt' -print -delete
./foo.txt
$ ll ./foo.txt
ls: cannot access ./foo.txt: No such file or directory

1
2018-02-07 08:17