2013-12-15 73 views
0

我有這個shell腳本解析符號鏈接(符號鏈接)到一個文件夾,並將其複製到當前的工作目錄:如何使用AppleScript從剪貼板複製文件?

cp -R `grealpath /some/dir/symlink_to_folder` . 

命令grealpath只是解決了一個符號鏈接時的coreutils在Mac安裝OS X.

我的問題是:什麼是作爲AppleScript的等價物?工作流程將如下所示:將Finder中的一個或多個符號鏈接文件夾複製到剪貼板,然後右鍵單擊Finder中的另一個文件夾 - >服務 - >運行新創建的腳本以複製剪貼板中的所有符號鏈接到其他文件夾。

+0

當您運行服務腳本,你想複製到新目錄的符號鏈接,或者它指向的文件夾的內容? –

+0

我想複製這些內容。例如。複製符號鏈接「.../some_dir_1」和「.../some_dir_2」應該創建文件夾「some_dir_1」和「some_dir_2」,並在文件夾中包含文件的真實副本(包含引用的符號鏈接(resloved))。 – Pwdr

回答

1

你可以這樣創建一個服務:

cp -R "$(/usr/local/bin/grealpath "$(osascript -e 'POSIX path of «class furl» of (the clipboard as record)')")" "$1"

如果剪貼板中包含文件的引用,«class furl» of (the clipboard as record)返回的第一個文件一個文件對象。您可能還會使用cp -RH source target而不是cp -R `grealpath source` target。如果符號鏈接和它的目標名稱不同,它將使用符號鏈接的名稱。

-H If the -R option is specified, symbolic links on the command line 
     are followed. (Symbolic links encountered in the tree traversal 
     are not followed.) 
+0

運行此代碼時出現錯誤。你能以純文本的形式發佈命令嗎?也許錯誤是因爲引號不同!? – Pwdr

+0

我編輯了答案。在使用該服務之前,您是否將一個符號鏈接複製到Finder中的文件夾? '/ usr/local/bin/grealpath'中的'grealpath'?您是否將「通過輸入」設置爲「作爲參數」?或者,如果您嘗試從Automator運行該服務,則它不起作用,因爲沒有輸入。 – user495470

+0

太棒了,現在它可以與第一個選擇一起使用!你知道要改變它以使它與多個項目一起工作嗎? – Pwdr

1

Applescript會將一個符號鏈接視爲另一個文件夾,因此您只需複製這些內容。

Tell application "Finder" 
    repeat with i from 1 to (count symlinks) 
    set newFolder to make new folder at destFolder with properties {name:item i of symlinks) 
    duplicate entire contents of item i of symlinks to newFolder 
end 
相關問題