और rsync खोजें?


24

मैं 14 दिनों से अधिक और 10k से अधिक फ़ाइलों की खोज करने में सक्षम होना चाहता हूं और उन फ़ाइलों को गंतव्य पर पाया जाना चाहिए।

क्या इन दोनों आज्ञाओं को मिलाने का कोई तरीका है?

find ./ -mtime +14 -size +10k 
rsync --remove-sent-files -avz /src /dest

जवाबों:


33

आप नीचे उल्लिखित किसी एक विकल्प का उपयोग करके rsync में खोज का आउटपुट भेज सकते हैं।

विधि # 1

ये 2 विकल्प बहुत समान हैं, वे मानते हैं कि आप निर्देशिकाओं को किसी स्थान पर बदल रहे हैं और फिर findवहां से कमांड चला रहे हैं।

$ rsync -avz --remove-sent-files \
        --files-from=<(find ./ -mtime +14 -size +10k) ./ /dest

आप सूची में फीड करने के लिए एक पाइप का उपयोग कर सकते हैं:

$ find ./ -mtime +14 -size +10k -print0 \
        | rsync -av --files-from=- --from0 ./ /dest

विधि # 2

इस विधि को कहीं से भी चलाया जा सकता है।

$ find /src/dir/ -mtime +14 -size +10k -printf %P\\0 \
        | rsync --files-from=- --from0 /src/dir/ /dst/dir/
  • printf %P: कमांड लाइन तर्क के नाम के साथ फ़ाइल का नाम जिसके तहत इसे हटा दिया गया था। इस तरह, आप किसी भी src निर्देशिका का उपयोग कर सकते हैं, पहले अपने src निर्देशिका में सीडी की जरूरत नहीं है।

संदर्भ

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