ওএস এক্স কমান্ড লাইনের মাধ্যমে কোনও ফাইলের প্রচ্ছদ দেখান / লুকান


21

নির্দিষ্ট ফাইলের এক্সটেনশানটি ফাইন্ডারে প্রদর্শিত হচ্ছে কিনা তা পরিবর্তনের জন্য আমি টার্মিনালের মাধ্যমে একটি উপায় খুঁজছি, এর লাইন বরাবর কিছু:

$ hideextension ~/music/somesong.mp3

খুলতে করেও পান তথ্য এবং পরিবর্তন চেকবক্সটি, যেমন ব্যাপক ক্লান্তিকর না।

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


যদি এটির কোনও তফাত হয় তবে আমি সিংহকে এটি সম্পাদন করার চেষ্টা করছি।
joshua.thomas.bird

উত্তর:


24

জিইউআইয়ের মাধ্যমে এটির পরিবর্তনের একমাত্র আসল উপায় হ'ল ফাইন্ডার তথ্য উইন্ডোতে লুকান এক্সটেনশনটি ক্লিক করা । এটি যাচাই করলে বর্ধিত বৈশিষ্ট্য পরিবর্তিত হয় , যা আপনি সাধারণত সম্পাদনা করতে পারবেন না - কমপক্ষে সহজে নয়। তবে আমরা এটি করার জন্য একটি সরঞ্জাম ব্যবহার করতে পারি।com.apple.FinderInfo

নীচের কাজ করার জন্য, আপনার অবশ্যই সমস্ত ফাইল এক্সটেনশান ফাইন্ডারের পছন্দগুলিতে চেক না করে দেখানো দরকার ।


অ্যাপলস্ক্রিপ্টের মাধ্যমে

অ্যাপলস্ক্রিপ্ট set extension hiddenকমান্ড সহ এই কার্যকারিতাটি সরবরাহ করে । আপনার অবশ্যই aliasএকটি ফাইল অবজেক্টের একটি দরকার । আমরা এটি পেতে পারি, উদাহরণস্বরূপ, যদিও একটি সংলাপ। এখানে কেবলমাত্র একটি ন্যূনতম কাজের উদাহরণ।

tell application "Finder"
    set some_file to (choose file)
    set extension hidden of some_file to true
end tell

বিপরীতে, শুধু এখানে trueসঙ্গে বিনিময় false। পুরো কলটি তখন, উদাহরণস্বরূপ:

set extension hidden of alias "Macintosh HD:Users:werner:Desktop:file.png" to true

আপনি এটিকে সরাসরি স্ক্রিপ্ট ফাইল থেকে চালাতে পারেন (যোগ করার জন্য @ ড্যানিয়েলবেক ধন্যবাদ ):

on run argv
tell application "Finder" to set extension hidden of (POSIX file (first item of argv) as alias) to true
end run

এটি সংরক্ষণ করুন filename.scptএবং কমান্ড লাইন থেকে এটি দিয়ে চালান:

osascript filename.scpt targetfile

সঙ্গে SetFileকমান্ড

দ্রষ্টব্য: এটি এক্সকোড 6 সাল থেকে অবহেলা করা হয়েছে।

আপনি যদি এক্সকোড ইনস্টল করে থাকেন তবে আপনি SetFile(1)বাইনারি পাবেন যা আপনি যা চান ঠিক তেমন করে (এবং ফাইল বৈশিষ্ট্য সম্পর্কিত আরও কয়েকটি ফাংশন সরবরাহ করে):

এক্সটেনশন লুকান:

SetFile -a E <file>

আবার এক্সটেনশন দেখান:

SetFile -a e <file>

কড়া কথায় বলতে গেলে এটি একটি উপনাম, ফাইল নয়। কমান্ড লাইন থেকে অ্যাপলস্ক্রিপ্ট কীভাবে ব্যবহার করবেন তা এখানে: on run argv [newline] tell application "Finder" to set extension hidden of (POSIX file (first item of argv) as alias) to true [newline] end runযেমন ব্যবহার করুন osascript filename.scpt targetfile
ড্যানিয়েল বেক

1
আপনি ঠিক বলেছেন, অবশ্যই আমি পুরো অ্যাপলস্ক্রিপ্ট ইভেন্ট যুক্ত করেছি। ভবিষ্যতে, কেবল এগিয়ে যান এবং উত্তরে গুরুত্বপূর্ণ কিছু যুক্ত করুন - আপনি সর্বদা স্বাগতম।
ছিটিয়ে দিন

1
আমি যা খুঁজছিলাম ঠিক সেভাবে .. ধন্যবাদ আমি এক্সকোড ইনস্টল করেছি এবং সেটফাইলটি কৌশলটি করেছে :-)
থানডাসুরু

SetFileএক্সকোড 6 এর পরে অবহেলা করা হয়েছে । এছাড়াও ম্যানুয়াল পৃষ্ঠার লিঙ্কটির মেয়াদ শেষ হয়ে গেছে।
ফ্রাঙ্কলিন ইউ

@ ফ্র্যাঙ্কলিনইউ তথ্যের জন্য ধন্যবাদ। আপনি কি প্রতিস্থাপন সম্পর্কে জানেন?
slhck

4

আপনার উত্তরের জন্য ধন্যবাদ slhck , এটি আমার যা করতে চেয়েছিল তা পেতে আমাকে একগুচ্ছ সহায়তা করেছিল।

সুতরাং যেহেতু আমি শর্টকাট পছন্দ করি, তাই আমি অটোমেটর যদিও একটি "রান শেল স্ক্রিপ্ট" পরিষেবা তৈরি করেছি।

for f in "$@"
do
    STATUS=`getFileInfo -ae "$f"`
    if [ $STATUS== 0 ];
    then
        SetFile -a E "$f"
    else
        SetFile -a e "$f"
    fi
done

তারপরে আমি অনুসন্ধানকারী -> পরিষেবাদি পছন্দগুলিতে গিয়ে সার্ভিসে একটি শর্টকাট যুক্ত করেছি।

 "Command + Shift + H" didn't work for me,
 "Command + H" hides the application
 so i chose "Command + Shift + E"

আশা করি এটা সাহায্য করবে. =)


STATUS=লাইন শেষে একটি ব্যাক-টিক চিহ্ন অনুপস্থিত রয়েছে। এছাড়াও, আমার ম্যাক + এক্সকোডে, কমান্ডটির GetFileInfoএকটি মূলধন জি রয়েছে
bjnord

1

আপনি বর্তমানে লুকানো ফাইল এক্সটেনশানটি দেখাতে চাইলে আরও একটি বিকল্প রয়েছে: সন্ধানকারী com.apple.FinderInfoবর্ধিত ফাইল বৈশিষ্ট্যে এই "লুকানো এক্সটেনশন" বিকল্পটি সংরক্ষণ করে। আপনি এই আদেশটি চালিয়ে যাচাই করে দেখতে পারেন যা সমস্ত বর্ধিত বৈশিষ্ট্য তালিকাভুক্ত করে:

xattr -l /path/to/the/file

সুতরাং, এক্সটেনশনটি দেখানোর জন্য, আপনি সেই বৈশিষ্ট্যটি মুছে ফেলতে পারেন:

xattr -d com.apple.FinderInfo /path/to/the/file

তবে মনে রাখবেন যে ফাইন্ডার অন্যান্য মেটাডেটা যেমন ট্যাগের রঙের মতো এই বৈশিষ্ট্যটিতে সঞ্চয় করে তাই এই মেটাডেটাটি হারাবে। এবং, যেহেতু বৈশিষ্ট্যটি বাইনারি, আপনি সহজেই এটি সংশোধন করতে পারবেন না।


0

কমান্ড লাইনে ( $ hideextension ~/music/somesong.mp3) একটি মাত্র যুক্তি পেতে , আপনি আপনার অ্যাপ্লিক্রিপ্টটিকে শেল স্ক্রিপ্টে পরিণত করতে পারেন। #!/usr/bin/osascriptনিম্নলিখিত কোডের মতো শেবাং ( ) তে ওসাস্ক্রিপ্ট ব্যবহার করা সম্ভব । এগিয়ে যেতে :

  1. আপনার আপেলস্ক্রিপ্ট কোডটি .scpt ফাইল => টগল_হিডেন_ এক্সটেনশন.এসসিপিতে পরীক্ষা করুন
  2. ঠিক আছে, #!/usr/bin/osascriptফাইলের শুরুতে শেবাং ( ) যুক্ত করুন
  3. ফাইল ফর্ম্যাট "টেক্সট" => টগল_হিডেন_ এক্সটেনশন.এপলস স্ক্রিপ্ট সহ এটি রপ্তানি করুন
  4. এক্সটেনশনটি .sh => টগল_হিডেন_ এক্সটেনশন.শকে পরিবর্তন করুন
  5. টার্মিনালে, এটি সম্পাদনযোগ্য করুন:

    chmod u+x toggle_hidden_extension.sh
    
  6. এখন আপনি এটি চালাতে পারেন:

    ./toggle_hidden_extension.sh /path/to/myfile.mp3
    

সুতরাং, উদাহরণস্বরূপ কোড:

#!/usr/bin/osascript

(*
usage: toggle_hidden_extension.sh file
*)

(*
Test 1 : ./toggle_hidden_extension.sh /Users/boissonnfive/Desktop/file.txt
Test 2 : ./toggle_hidden_extension.sh
Test 3 : ./toggle_hidden_extension.sh 0fdjksl/,3
*)

on run argv
    try
        processArgs(argv)
        toggleHiddenExtension(item 1 of argv)
    on error
        return usage()
    end try

    if result then
        return "Extension hidden for " & POSIX path of (item 1 of argv)
    else
        return "Extension revealed for " & (POSIX path of (item 1 of argv))
    end if

end run


on usage()

    return "usage: toggle_hidden_extension.sh file"

end usage

on processArgs(myArgs)

    set item 1 of myArgs to POSIX file (first item of myArgs) as alias

end processArgs

on toggleHiddenExtension(myFile)

    tell application "Finder" to set extension hidden of myFile to not (extension hidden of myFile)

end toggleHiddenExtension

0

এমনকি যদি SetFileএক্সকোড 6 এর পরে অবজ্ঞাত হয়ে থাকে তবে এটি এখনও এক্সকোড 11 এ উপলব্ধ, তাই আপনি এটি ভবিষ্যতের জন্য কমান্ড লাইন সরঞ্জামে থাকার আশা করতে পারেন ...

https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_11/Command_Line_Tools_for_Xcode_11.dmg

$ pkgutil --payload-files /Volumes/Command\ Line\ Developer\ Tools/Command\ Line\ Tools.pkg | grep SetFile
./Library/Developer/CommandLineTools/usr/bin/SetFile
./Library/Developer/CommandLineTools/usr/share/man/man1/SetFile.1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.