ম্যাক ওএস এক্স: টার্মিনাল থেকে ফাইলগুলির রঙের লেবেল কীভাবে পরিবর্তন করবেন


16

টার্মিনালে থাকাকালীন কোনও ফাইলের রঙিন লেবেলকে কিছু রঙের জন্য সেট করার কোনও উপায় আছে কি?

আমি জানি যে নীচের কমান্ডটি বর্তমানে রঙটি সম্পর্কে কিছু তথ্য তালিকাভুক্ত করেছে, তবে এটি সম্পর্কে কীভাবে করব তা আমি বুঝতে পারি না। এটি পরিবর্তন করুন।

mdls -name kMDItemFSLabel somefile.ext

যে কারণটি আমি জানতে চাইছি তা হ'ল আমি অবশ্যই একটি নির্দিষ্ট রঙের লেবেল (আমার ক্ষেত্রে ধূসর) দিয়ে একটি নির্দিষ্ট ধরণের ফোল্ডারে সমস্ত ফাইলকে পুনরাবৃত্তভাবে চিহ্নিত করতে চাই।

আমি কীভাবে অনুসন্ধান করতে জানি:

find . -name "*.ext"

এবং আমি জানি যে কীভাবে আমি প্রতিটি ফাইল ব্যবহার করে পরবর্তী কমান্ডটি চালাতে -execপারি তবে প্রকৃত লেবেলিং কীভাবে করা যায় তা আমার জানতে হবে ...

আমি এমন একটি সমাধান চাই যা কেবলমাত্র ম্যাক ওএস এক্স-এ অন্তর্নির্মিত কমান্ডগুলিতে জড়িত থাকে So সুতরাং অন্য কোনও উপায় না থাকলে তৃতীয় পক্ষের তৃতীয় পক্ষের কোনও জিনিস নেই।

উত্তর:


9

এখানে এবং রেফারেন্স করা পোস্টগুলিতে প্রতিক্রিয়াগুলির ভিত্তিতে, আমি নিম্নলিখিত ফাংশনটি তৈরি করেছি এবং এটি আমার ~ / .bash_profile ফাইলে যুক্ত করেছি:

# ফাইন্ডারের লেবেল রঙ সেট করুন
ট্যাগ () {
  যদি [$ # -ল্ট 2]; তারপর
    প্রতিধ্বনি "ব্যবহার: লেবেল [0-7] ফাইল 1 [ফাইল 2] ..."
    প্রতিধ্বনি "ফাইলগুলির জন্য ফাইন্ডারের লেবেল (রঙ) সেট করে"
    প্রতিধ্বনি "ডিফল্ট রঙ:"
    প্রতিধ্বনি "0 রঙ নেই"
    প্রতিধ্বনি "1 কমলা"
    প্রতিধ্বনি "2 লাল"
    প্রতিধ্বনি "3 ইয়েলো"
    প্রতিধ্বনি "4 নীল"
    প্রতিধ্বনি "5 বেগুনি"
    প্রতিধ্বনি "6 সবুজ"
    প্রতিধ্বনি "7 ধূসর"
  আর
    osascript - "$ @" << EOF
    চলমান আরগভিতে
        লেবেল ইনডেক্স সেট করুন (সংখ্যা হিসাবে আরগভির আইটেম 1)
        আমি সাথে 2 থেকে পুনরাবৃত্তি (আরগভির গণনা)
          অ্যাপ্লিকেশন "ফাইন্ডার" বলুন
              POSIX ফাইলে ফাইলটিকে (আরগভির আইটেম i) উপকরণ হিসাবে সেট করুন
              ফাইলের লেবেল সূচককে লেবেল ইন্ডেক্সে সেট করুন
          শেষ বলুন
        শেষ পুনরাবৃত্তি
    শেষ রান
ফাইলের শেষে
  ফাই
}
>


4

ওভাস্ক্রিপ্টের পদ্ধতিগুলি ম্যাভেরিক্স অ্যাপলস্ক্রিপ্টে ভাঙ্গা মনে হচ্ছে, তবে এটি কার্যকর বলে মনে হচ্ছে:

xattr -wx com.apple.FinderInfo "0000000000000000000C00000000000000000000000000000000000000000000" /path/to/your/file

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


ওহ আমার, এটি বেশ কমান্ড।
নাথানচাহিল

3

ওসাস্ক্রিপ্ট -পোসেক্স ফাইলের লেবেল সূচক (\ "/ জাঙ্ক.টেক্সট \") 1 এ সেট করতে "অ্যাপ্লিকেশনকে Find" ফাইন্ডার tell "বলুন


osascript -e "tell app \"Finder\" to set label index of POSIX file (\"/junk.txt\") to 1 জাঙ্ক.টেক্সট যদি সত্যিই my full/path/with spaces.txtএকটি ভেরিয়েবলে সংরক্ষণ করা থাকে এবং $fileName অগণিত সিনট্যাক্স এবং একক-উদ্ধৃতি, ডাবল-কোট ... চেষ্টা করেছি এবং এর কোনওটিই কাজ করে না What

আপনি এটিকে ব্যাকস্ল্যাশ সহ File\ with\ Spaces.txt
এড়িয়ে গেছেন

3

@ লৌরি এবং @ রবার্টের দু'টির ভিত্তিতে আমার সংস্করণটি এখানে। আপনি রঙটি রঙের নাম ব্যবহার করে নির্দিষ্ট করুন, সংখ্যাটি নয়। রঙের নামগুলি আউটপুটটির সাথে সামঞ্জস্যপূর্ণ hfsdata -L, তাই আপনি ফাইলটিতে কোনও রঙ বরাদ্দ করতে "কিছুই নয়" ব্যবহার করেন। এটি "সেটলাবেল" নামে একটি ফাইলে সংরক্ষণ করুন এবং করুন chmod 755 setlabel

#!/bin/bash
# Set Finder label color
  if [ $# -lt 2 ]; then                                                       
    echo "USAGE: setlabel color file1 [file2] ..."
    echo "Sets the Finder label (color) for files"
    echo "Possible colors: None Orange Red Yellow Blue Purple Green Gray"
  else
  labelargs=$@
  color=$1
  file=$2
  colorarray=( None Orange Red Yellow Blue Purple Green Gray )
  colorvalue=8
  for i in {0..7}
     do
      if [ "${color}" == ${colorarray[${i}]} ]
      then
         colorvalue=${i}
      fi
     done
  if [ "${colorvalue}" == "8" ]
      then
         echo Color ${color} is not recognized.
     echo "Possible colors: None Orange Red Yellow Blue Purple Green Gray"
     else
    osascript - ${colorvalue} ${file} << EOF >/dev/null 2>&1
    on run argv
        set labelIndex to (item 1 of argv as number)
        repeat with i from 2 to (count of argv)
          tell application "Finder"
              set theFile to POSIX file (item i of argv) as alias
              set label index of theFile to labelIndex
          end tell
        end repeat
    end run
EOF
    fi
  fi

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

1

এগুলি ফাইন্ডারে দেখতে (আমি জানি, আপনি যা চেয়েছিলেন তা নয়) আপনি xattr -l, বা xattr -p com.apple.FinderInfo ব্যবহার করতে পারেন, আপনি শূন্যগুলির মধ্যে একটি পতাকা পাবেন (1 ই), যার মধ্যে নিম্ন বিটগুলি রঙ .. তৃতীয় পক্ষের স্টাফ সহ: hfsdebug (sudo ব্যবহার করুন) প্রচুর তথ্য পেতে, যার মধ্যে একটি পাঠযোগ্য রঙের লেবেল।

তৃতীয় অংশের স্টাফ দিয়ে এগুলি পরিবর্তন করতে: অক্সুটিলসের একটি সেটলবেল কমান্ড রয়েছে।


দুর্ভাগ্যক্রমে, osxutils কেবলমাত্র PPC।

1

এটি ফাইন্ডার হিসাবে রঙগুলির জন্য একই ক্রম ব্যবহার করবে।

#!/bin/bash

if [[ $# -le 1 || ! "$1" =~ ^[0-7]$ ]]; then
  echo "usage: label 01234567 FILE..." 1>&2
  exit 1
fi

colors=( 0 2 1 3 6 4 5 7 )
n=${colors[$1]}
shift

osascript - "$@" <<END > /dev/null 2>&1
on run arguments
tell app "Finder"
repeat with f in arguments
set f to (posix file (contents of f) as alias)
set label index of f to $n
end
end
end
END

স্টেডার পুনঃনির্দেশিত হয়েছে কারণ সিএফআরএল গেটএফএসআরফের মতো একটি সতর্কবাণীতে একটি উপনামের ফলাফলের তুলনায় একটি আপেক্ষিক পথ রূপান্তর করা এই ইউআরএল পাস হয়েছিল যার 10.8 তে কোনও পরিকল্পনা নেই । স্টডআউট পুনঃনির্দেশিত হয়েছে কারণ ওসাস্ক্রিপ্ট সর্বশেষ এক্সপ্রেশনটির মান মুদ্রণ করে।


1

আমি এই স্ক্রিপ্টগুলি পছন্দ করি, তবে, স্ক্রিপ্টের মধ্যে ব্যাশের জন্য আইএফএস সেটিংটি পরিবর্তন না করা পর্যন্ত তারা আমার নামে যে জায়গাগুলি তাদের নামে স্পেস ব্যবহার করেছিল সেগুলির জন্য কাজ করছিল না, আমি ফাইলের নামের সাথে একটি পাঠ্য ফাইল গ্রহণ করার জন্য ফাইলের ইনপুটটিও পরিবর্তন করেছি:

#!/bin/bash
# Set Finder label color of files in a list
# set the Internal Field Separator to \n (newline)
IFS=$'\n'
  if [ $# -lt 2 ]; then                                                       
    echo "USAGE: LabelFilelist color Path/to/filelist ..."
    echo "Sets the Finder label (color) for files"
    echo "Possible colors: None Orange Red Yellow Blue Purple Green Gray"
  else

 labelargs=$@
  color=$1
  file=`cat < $2`
  colorarray=( None Orange Red Yellow Blue Purple Green Gray )
  colorvalue=8
  for i in {0..7}
     do
      if [ "${color}" == ${colorarray[${i}]} ]
      then
         colorvalue=${i}
      fi
     done
  if [ "${colorvalue}" == "8" ]
      then
         echo Color ${color} is not recognized.
     echo "Possible colors: None Orange Red Yellow Blue Purple Green Gray"
     else
    osascript - ${colorvalue} ${file} << EOF >/dev/null 2>&1
    on run argv
        set labelIndex to (item 1 of argv as number)
        repeat with i from 2 to (count of argv)
          tell application "Finder"
              set theFile to POSIX file (item i of argv) as alias
              set label index of theFile to labelIndex
          end tell
        end repeat
    end run
EOF
    fi
  fi

0

আপেল স্ক্রিপ্ট ব্যবহার করে এটি কীভাবে করা যায় তা বর্ণনা করার জন্য এখানে দুটি নিবন্ধ দেওয়া হয়েছে, যা পরিবর্তিতভাবে কমান্ড লাইন থেকে আবেদন করা যেতে পারে।

টার্মিনাল বা অ্যাপলস্ক্রিপ্টের মাধ্যমে কীভাবে রঙের লেবেল সেট করবেন
এবং
শেল স্ক্রিপ্ট থেকে ওএস-এক্স ফাইন্ডারে রঙের সাথে ফাইল ট্যাগ করতে পারেন


কমান্ড-লাইন থেকে আপনি কীভাবে এটি কল করবেন?
সুইভিশ

অ্যাপলস্ক্রিপ্ট সম্পাদকটিতে, আপনি কোনও অ্যাপ্লিকেশন হিসাবে একটি স্ক্রিপ্ট সংকলন এবং সংরক্ষণ করতে পারেন। আপনি এটির পথ নির্দিষ্ট করে চালাতে পারেন। আপনি অ্যাপলস্ক্রিপ্টের লাইনে এটি "ওসাসক্রিপ্ট" এর আগে চালিয়ে এবং অ্যাপলস্ক্রিপ্ট কমান্ডটি উদ্ধৃত করে চালাতে পারেন।
উদ্ধৃতিটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.