Ви можете скористатися дією Створити архів та перейменувати отриманий архів:
d=${1%/*}
start="$d/${d##*/}"
name="$start.zip"
i=2
while [[ -e $name ]]; do
name="$start $i.zip"
let i++
done
mv "$1" "$name"
open -R "$name"
Або скористайтеся подібним сценарієм запуску оболонки оболонки:
for n in $(seq $(printf %s "$@" | tr -dc / | wc -c)); do
uniq=$(printf %s\\n "$@" | cut -d / -f1-$n | uniq)
[[ $uniq != *$'\n'* ]] && dir=$uniq || break
done
cd "${dir:-/}"
[[ $dir ]] && start=${dir##*/} || start=archive
name="$start.zip"
i=2
while [[ -e $name ]]; do
name="$start $i.zip"
let i++
done
zip -r "$name" -- "${@#$dir/}"
open -R "$name"
Якщо деякі файли мають розширені атрибути або ACL, zip видаляє їх. Архів утиліти та дії Create Archive зберігають їх у форматі AppleDouble.
return first text item of pathList
і я отримую список назад. Мій шлях, а також"/Library/NetBoot/NetbootSP0"
. Як я можу повернути лише той шлях, який я хочу? Чи є спосіб я просто повернути останній каталог на цьому шляху?