ট্র্যাশে সমস্ত কিছু স্বয়ংক্রিয়ভাবে "পিছনে ফেলে" রাখার কি উপায় আছে?


16

আমার স্ত্রী ফাইন্ডারে 'সমস্ত দস্তাবেজ' ফোল্ডারটি দেখে এবং এটিকে সমস্ত ট্র্যাসে স্থানান্তরিত করার সিদ্ধান্ত নিয়েছে।

ট্র্যাশে এখন আমাদের কাছে 9,000 টিরও বেশি ফাইল রয়েছে এবং আমি একটি ক্লিক দিয়ে সবকিছু ফিরিয়ে দেওয়ার কোনও উপায় খুঁজে পাইনি।

কিছু কারণে এটি আমাকে একবারে কেবল একটি ফাইল 'পিছিয়ে' রাখতে দেয়।

এটি স্বয়ংক্রিয় করার কোনও উপায় আছে?


1
যদি সে ফোল্ডারটিকে ট্র্যাশে ফেলে দেয় তবে কেবল এটিকে আবার বাইরে টেনে আনতে হবে?
হেনরিয়্যারন

উত্তর:


9

যদি "পুট ব্যাক" একাধিক-আইটেম নির্বাচনের জন্য অক্ষম করা হয় তবে এর অর্থ হ'ল (কমপক্ষে) নির্বাচিত আইটেমগুলির মধ্যে একটিরও ট্র্যাশ ডিরেক্টরিটির .DD_Store ফাইলটিতে তার মূল অবস্থানের তথ্য নেই।

যদিও এটা আদর্শ কম, গ্রুপ খুঁজছেন ফাইলের বহু-নির্বাচন সাব-সেট নির্বাচন যে আপনি "প্রতিহত করা" করতে পারেন চেষ্টা গণহারে অবশিষ্ট ফাইলের জন্য ম্যানুয়াল ফাইলিং অবলম্বন আগে।


1
আমি "পুট ব্যাক" ফাইলগুলি মুখোমুখি করতে পারি না। আমি উভয় ফাইল নির্বাচন করতে পারি এবং পিছনে রাখার বিকল্পটি সেখানে থাকে তবে আমি যখন উভয়ই "পুট ব্যাক" নির্বাচন করি তখন উপলব্ধ থাকে না। সুতরাং আমি মনে করি না আপনি "পুট ব্যাক" করতে পারবেন না। একটি applescript যদিও ... সঙ্গে হয়তো
স্টিভ Moser

6
এই উত্তরটি ভুল। আমি এমন অবস্থায় আছি যেখানে কোনও পৃথক ফাইল "পুট ব্যাক" হতে পারে তবে আমি যদি একাধিক ফাইল নির্বাচন করতে পারি না তবে এটি আপনার উত্তরের সাথে সামঞ্জস্যপূর্ণ নয়।
টম সওয়ারলি

উত্তর সত্যই ভুল। আমি আমার ট্র্যাশে একটি এ এবং বি ফাইল ফাইল করেছি। ডান ক্লাইকিংয়ের সময় তাদের পৃথকভাবে আমাকে পুট ব্যাক বিকল্প দেয়, সেগুলি দুটি নির্বাচন করে এবং তারপরে ডান ক্লিক করে, পট ব্যাক বিকল্পটি চলে যায়।
রেঞ্চ

5

অ্যাপলস্ক্রিপ্ট সম্পাদক এ জাতীয় স্ক্রিপ্ট চালানোর চেষ্টা করুন:

repeat
    tell application "Finder"
        close windows
        if items of trash is {} then return
        open trash
        activate
    end tell
    tell application "System Events"
        key code 125 -- down arrow
        key code 51 using command down -- command-delete
    end tell
end repeat

আপনি যখন কোনও আইটেম পিছনে রাখার চেষ্টা করছেন তখন ফাইন্ডার যদি কোনও পাসওয়ার্ড ডায়লগ দেখায়, tell application "System Events"ব্লকের শেষে এই জাতীয় কিছু যুক্ত করার চেষ্টা করুন :

delay 1
if exists window 1 of process "SecurityAgent" then
    tell window 1 of process "SecurityAgent"
        set value of text field 2 of scroll area 1 of group 1 to "pa55word"
        click button 2 of group 2
    end tell
end if
delay 1

কোনও কারণে এটি আমার পক্ষে সত্যিই ধীরে ধীরে ছড়িয়ে পড়েছে যখন @ থাইরিকোব্লেঞ্জের একটি প্রায় 50x দ্রুত ছিল। আমি কেন এক্সপ্লোর করিনি।
রোরি

3

একটি অ্যাপলস্ক্রিপ্ট যা "[গুলি] সমস্ত জিনিসকে ট্র্যাশে ফেলে দিয়েছিল" আমার জন্য কাজ করেছিল:

"অ্যাপলস্ক্রিপ্ট সম্পাদক" খুলুন এবং নীচের লাইনগুলি অনুলিপি / পেস্ট করুন, তারপরে স্ক্রিপ্টটি যতবার প্রয়োজন ততবার চালান।

tell application "System Events"
    tell process "Finder"
        repeat 100 times
            tell application "Finder" to open trash
            tell application "Finder" to activate
            key code 126
            key down command
            key code 51
            key up command
            delay 0.2 -- adjust delay as needed
        end repeat
    end tell
end tell
tell application "Finder" to close every window

1
এটি ম্যাকস সিয়েরায় আমার জন্য কাজ করেছে। এফওয়াইআই: কী কোড 126 শেষ এবং কী কোড 51 ব্যাকস্পেস। আপনি 3 লাইন কী চেপে ... কী আপ করুন ... এক পরিবর্তন করতে পারেন: key code 51 using key command down। (এই অন্য উত্তর থেকে অভিযোজিত হয় ফাইল আমার ডেস্কটপ পুনরুদ্ধার চেয়েছিলেন আমার সিস্টেম পাসওয়ার্ড, যা এই স্ক্রিপ্ট আমি ঐ বাতিল করা হয়েছে এবং ম্যানুয়ালি সঙ্গে তছনছ যারা কয়েক পুনঃস্থাপন করা
এরিক হু

ম্যাকস মোজাভেতে আমার জন্য, এই সমাধানটি একটি দুঃস্বপ্ন ছিল। প্রতিটি আইটেম যা আবর্জনা থেকে ফিরিয়ে দেওয়া হয়েছিল, সেই আইটেমের উত্স ফোল্ডারে একটি নতুন ফাইন্ডার উইন্ডোটি খুলল। তারপরে কোডটি বর্তমান ফাইন্ডার উইন্ডোতে আইটেম নির্বাচন করা শুরু করেছিল (যার মধ্যে কিছু সংযুক্ত ফোল্ডার ক্রিয়াকলাপযুক্ত ফোল্ডার ছিল) যা তখন ট্রিগার হয়ে যায়।
wch1zpink

3

এই অ্যাপলস্ক্রিপ্ট কোডটি ম্যাকোস মোজভেভের সর্বশেষতম সংস্করণটি ব্যবহার করে আমার জন্য কাজ করে।

এই কোডটি ট্র্যাশের প্রতিটি আইটেমের মধ্য দিয়ে লুপ করে প্রতিটি আইটেমকে তাদের মূল স্থানে ফিরিয়ে দেবে।

ট্র্যাসে থাকা ফাইলগুলির মূল উত্স ফোল্ডারের মধ্যে যদি আর উপস্থিত না থাকে, repeat until trashCount is 0কমান্ডটি লুপ থেকে প্রস্থান করবে। ট্র্যাসে থাকা কোনও ফাইল কেবল সেই ফাইলগুলিতে থাকবে যা এই কারণে পিছনে ফেলা যায়নি।

হালনাগাদ

যেহেতু ট্র্যাশ থেকে ফাইলগুলি ফেরত দেওয়ার প্রক্রিয়াটির পুনরাবৃত্ত লুপ চলাকালীন আপনার ডেস্কটপে কোনও আইটেম নির্বাচন করা সম্ভব, নির্বাচিত ডেস্কটপ আইটেমটি প্রক্রিয়াতে ধরা পড়তে পারে এবং ট্র্যাসে স্থানান্তরিত করতে পারে। এই দৃশ্যটি এড়াতে, আমি এমন কোড যুক্ত করেছি যা বর্তমানে আনলক করা ডেস্কটপ আইটেমগুলিকে লক করবে এবং স্ক্রিপ্টের শেষে এগুলি আনলক করবে।

কারণ সমস্ত ডেস্কটপ আইটেম এখন লক হয়ে গেছে ... ট্র্যাশ থেকে ফাইলগুলি ফেরত দেওয়ার প্রক্রিয়া চলাকালীন, যদি কোনও কারণে আপনি ঘটনাক্রমে আপনার ডেস্কটপে কোনও ফাইল বা ফোল্ডার নির্বাচন করেন এবং কোডটি সেই নির্বাচিত ডেস্কটপ আইটেমটি প্রক্রিয়া করার চেষ্টা করে ... এটি হবে আইটেমটি লক করা আছে উল্লেখ করে একটি ডায়ালগ উইন্ডো উত্পন্ন করুন এবং আপনি এটি ট্র্যাশে পাঠানো চালিয়ে যেতে চান কিনা তা জিজ্ঞাসা করুন। স্ক্রিপ্টের শেষের দিকে ব্লক বলার সিস্টেম ইভেন্টগুলি সেই ডায়ালগ বাক্সগুলির মধ্যে যে কোনওটি জেনারেট করে থাকতে পারে handle

property desktopFolder : path to desktop
property unlockedFiles : missing value

tell application "Finder"
    set trashCount to count of every item of trash
    set unlockedFiles to (items of desktopFolder whose locked is false)
    repeat with i in unlockedFiles
        set locked of i to true
    end repeat
end tell

repeat until trashCount is 0
    tell application "Finder" to set orphanCount to count of every item of trash
    putFilesBack()
    tell application "Finder" to set trashCount to count of every item of trash
    if orphanCount is equal to trashCount then exit repeat
end repeat

delay 1

tell application "System Events"
    repeat until not (exists of button "Stop" of scroll area 1 of window 2 of application process "Finder")
        if exists of button "Stop" of scroll area 1 of window 2 of application process "Finder" then
            click button "Stop" of scroll area 1 of window 2 of application process "Finder"
        end if
    end repeat
end tell

tell application "Finder"
    close every Finder window
    delay 1
    repeat with i in unlockedFiles
        set locked of i to false
    end repeat
end tell

on putFilesBack()
    global trashFiles, trashCount, thisItem
    tell application "Finder"
        set trashFiles to every item of trash
        set frontmost to true
        repeat while not frontmost
            delay 0.1
        end repeat
        my closeFinderWindows()
    end tell
    delay 0.1
    tell application "System Events"
        tell application process "Finder"
            repeat with i from 1 to count of trashFiles
                set thisItem to item i of trashFiles
                delay 0.1
                set frontmost to true
                select thisItem
                delay 0.1
                try
                    key code 51 using {command down}
                end try
                delay 0.1
                my closeFinderWindows()
                delay 0.1
            end repeat
        end tell
    end tell
    tell application "Finder" to set trashCount to count of every item of trash
end putFilesBack

on closeFinderWindows()
    tell application "Finder"
        set finderWindowRef to (a reference to (every Finder window whose name is not "Trash"))
        set finderWindowRef to contents of finderWindowRef
        close (items of finderWindowRef)
    end tell
end closeFinderWindows

ওপি ~ 7.5 বছর পুরানো, সুতরাং আর ওপি-র ইস্যুতে প্রযোজ্য নয়, তবুও এটি একটি আপডেট স্বয়ংক্রিয় স্ক্রিপ্ট থাকা ভাল যা ম্যাকোসের রিলিজ পরিচালনা করে যা পুট ব্যাক ফাইলটি দেখায় একটি নতুন উইন্ডো খোলায়। আপনার সম্ভবত ব্যবহারের নোট হিসাবে ব্যবহারকারীকে অবহিত করা উচিত যে এটি ব্যবহার করার জন্য, ইউআই স্ক্রিপ্টিংয়ের প্রকৃতির কারণে কম্পিউটারের কাজ শেষ না হওয়া পর্যন্ত তাকে স্পর্শ করা উচিত নয়। অগত্যা স্ক্রিপ্টটি সঞ্চালনের দ্বারা উপস্থাপিত কোনও বার্তা হতে হবে না তবে উত্তরের নোট হিসাবে।
ব্যবহারকারী 3439894

বিটিডাব্লু আমার +1 থাকত তবে পুনরাবৃত্ত লুপের বাগটি গ্রহণযোগ্য নয় কারণ এটি যে পরিস্থিতি সৃষ্টি করে তা সামলানোর জন্য কোড করা যেতে পারে!
ব্যবহারকারী 3439894

@ ব্যবহারকারী 3439894 আমি কোড আপডেট করেছি ... আমার +1 কোথায়? LOL
wch1zpink

1
কত সহজ ছিল দেখুন! :) +1
ব্যবহারকারী 3439894

1

আপনার প্রতিটি ফাইল হাইলাইট করতে সক্ষম হওয়া উচিত বা কমপক্ষে এটি ইনক্রিমেন্টাল ব্যাচে করা উচিত, সেগুলি অনুলিপি করুন এবং তারপরে আমি বিশ্বাস করি তাদের পুনরায় পেস্ট করুন। আমি কেবল এটি চেষ্টা করেছি এবং যদি আপনি আপনার ট্র্যাশগুলিতে ডাবল ক্লিক করেন তবে আপনার পুনরুদ্ধার করতে চান এমন ফাইলগুলিতে ডান ক্লিক করতে পারেন "পুট ব্যাক" বিকল্প যা কেবল ফাইল দ্বারা ফাইলের কাজ করে, আমি যেমন হাইলাইট করব তারপরে সিসি (কমান্ড সি) টিপুন তাদের সিলেক্ট করার জন্য সিভি (কমান্ড ভি) দিন।


1

এটি আমার পক্ষে কাজ করেছে:

  • ফাইন্ডারে একটি নতুন ফোল্ডার তৈরি করুন, আমি আমার "পুনরুদ্ধার করা ফাইল" বলি
  • ট্র্যাশ ফোল্ডারটি খুলুন এবং একটি গ্রুপের ফাইল নির্বাচন করুন
  • ফাইলগুলি অনুলিপি করুন এবং "পুনরুদ্ধার করা ফাইলগুলি" ফোল্ডারে পেস্ট করুন।

আপনার যদি কোনও বৃহত ফোল্ডার বা বিপুল সংখ্যক পৃথক ফাইল পিছনে রাখতে হয় তবে এই কৌশলটি ব্যবহার করুন। আপনার যদি কেবল 1 বা 2 ফাইলের প্রয়োজন হয় তবে কেবল "পিছনে ফিরে" বৈশিষ্ট্যটি ব্যবহার করুন।


1
ভুল - এটি পুনরায় ফাইলগুলিকে "পিছনে" ফেলে না এবং সমস্যাটি সমাধান করে না, এটি কেবল সমস্ত কিছু নেয় এবং এগুলিকে একটি বড় গাদাতে ফেলে দেয়।
টম সওয়ারলি

1

স্নো চিতাবাঘের পূর্বে ওএস এক্স এর স্থানীয় অবস্থানগুলি থেকে মুছে ফেলা ফাইলগুলি পুনরুদ্ধার করার ক্ষমতা নেই (যেমনটি উইন্ডোজের পরিবেশে রিসাইক্ল বিনের প্রসঙ্গ মেনুতে "পুনরুদ্ধার" বিকল্পের সাহায্যে স্থানীয়ভাবে করা যেতে পারে)। আমি দুর্ঘটনাক্রমে আপনার স্ত্রী যেমন এক মুহুর্তে প্রায় 10,000 টি প্লাস ফাইল মুছে ফেলা হয়েছিল তেমনটি করেছি।

আমার সমস্ত অপশন অন্বেষণ করার পরে আমি টাইম মেশিনের মাধ্যমে একটি সিস্টেম পুনরুদ্ধার করলাম। ফাইলগুলিকে তাদের যথাযথ স্থানে নিয়ে যাওয়া এখন পর্যন্ত সবচেয়ে সমীচীন পদ্ধতি ছিল।


2
ঠিক আছে, আপনি অন্যান্য উত্তরগুলি সহজেই এখানে ছাড়িয়ে নিতে পারেন, ট্র্যাশ থেকে ফাইল / ফোল্ডারগুলি পিছনে ফেলে রাখা সম্ভব: ট্র্যাশ খুলুন, একটি ফাইলের ডান ক্লিক করুন এবং "পিছনে পিছনে" নির্বাচন করুন।
nohillside

1

ট্র্যাশ থেকে সমস্ত ফাইলগুলিকে ফাইন্ডারে টেনে আনুন Files আপনার কাছে প্রচুর ফাইল থাকলে কিছুক্ষণ সময় লাগবে। আমরা 10000+ ফাইল পরীক্ষা করেছি। ফাইন্ডার সমস্ত ফাইলকে তার আসল অবস্থানে পুনরুদ্ধার করবে।



0

@ থিয়েরি ইতিমধ্যে গিয়াকোমো বলি থেকে এখানে দিয়েছিলেন এমন একটি কাছাকাছি সমাধানের উপর ভিত্তি করে আমরা আপনার বেশ কয়েকটিকে সহায়তা করার জন্য এই সমাধানটি তৈরি করেছি, যেহেতু সমস্যা এখনও রয়ে গেছে। আপনি যখন ম্যাকস-এ কোনও ফাইল মুছবেন তখন এর আসল অবস্থানগুলি সংরক্ষণ করা হবে.DsStoreআপনি যদি এটি পুনরুদ্ধার করতে চান তবে লুকানো ফাইলগুলি। ম্যাকোসের সাম্প্রতিক সংস্করণগুলিতে আপনার ট্র্যাশগুলিতে জিনিসটি যেখানে এসেছিল, লিটিটি-বিভক্ত করা এবং এটি টেনে আনার এবং ছাড়ার চেয়ে দ্রুতগতিতে রাখার ক্ষমতা রয়েছে। সুতরাং আপনারা যেমন জানেন যে আপনি যদি আপনার ডকের ট্র্যাশ আইকনে ক্লিক করেন তবে আপনি যে আইটেমগুলি রেখেছেন তা ভালভাবে, ট্র্যাশেড দেখতে পাবেন। যে কোনও ফাইলের ডান-ক্লিক বা নিয়ন্ত্রণ-ক্লিক করুন (বা একাধিক আইটেম ক্লিক করতে এবং নির্বাচন করতে কমান্ড চেপে ধরে রাখুন, তারপরে কন্ট্রোল-ক্লিক করুন) এবং আপনি পট-ব্যাক বিকল্পটি দেখতে পাবেন। একমাত্র সমস্যা হ'ল এটি আমাদের কেবলমাত্র একটি আইটেমের জন্য এটি করতে দিন।

সমাধান

  1. আপনার স্থানীয় মেশিনে ভান্ডারটি ক্লোনিং দিয়ে শুরু করুন যাতে আপনি আমাদের সমাধানটি ব্যবহার করতে শুরু করতে পারেন;

    গিট ক্লোন git@github.com: opprDev / trash-back.git

    সিডি ট্র্যাশ-ব্যাক

  2. ওসাস্ক্রিপ্ট কমান্ডের মাধ্যমে সেই কম্পিউটারে অ্যাপলস্ক্রিপ্ট চালান ;

    osascript স্ক্রিপ্টগুলি / ট্র্যাশ-ব্যাক.এসসিপি pt

উপসংহার

অ্যাপলস্ক্রিপ্ট চালানো আপনি কমান্ড লাইন থেকে দূরবর্তীভাবে যা করতে পারবেন তা ব্যাপকভাবে বৃদ্ধি করে এবং অন্যথায় করা শক্ত কৌশলগুলি অনেকগুলি সক্ষম করে। আপনি কমান্ড লাইনে পুরো স্ক্রিপ্টগুলি চালাতে পারবেন, চলার এই পদ্ধতিটি কেবল চালানো সম্পর্কেই একটি osascriptকমান্ডের মাধ্যমে একটি দূরবর্তী কম্পিউটারে ( এসএসএস ব্যবহার করে) লগইন করতে পারে এবং সেই কম্পিউটারে অ্যাপলস্ক্রিপ্ট চালাতে পারে । osascriptকমান্ড এছাড়াও অন্য কোন রান করতে পারেন ওপেন স্ক্রিপ্টিং আর্কিটেকচার -l পরিবর্তক ব্যবহার ভাষা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.