Версия гну ls
имеет --group-directories-first
. И cp
имеет -t
.
В системах, которые не имеют гну ls
, Ваш лучший выбор является двумя последовательными вызовами к find
с -maxdepth n
/-mindepth n
и -type t
с подходящими вариантами.
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
Для копирования файлов, с целью сначала, необходимо было бы записать сценарий, который сохраняет первый аргумент, затем использует shift
, и добавляет аргумент в конец.
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
Если Вы были планированием использования их вместе - то есть, собирая список из find
или ls
(возможно при помощи xargs
) и передача его к cp
(или a cp
обертка), необходимо знать о том, какие опасности лежат в парсинге списков файлов (в основном, имена файлов могут содержать символы как новые строки, которые могут испортить сценарий). А именно, изучите find
-exec
и -print0
опции и xargs
-0
опция.
Вы могли бы хотеть изучить использование rsync
вместо этого; это имеет большую функциональность, которая могла бы сделать Ваше задание легче.
Я собираюсь предположить, что у Вас есть Debian lenny, и Ваши sourcelist приспособили к стабильной версии, которая по умолчанию только имеет python2.5 (кто-то исправляет меня?)
От краткого сканирования их дерева пакета python3.1 существует в (нестабильном) Debian Sid и Debian Squeeze (тестирующий) дерево. Посмотрите Здесь
Вы можете w-get
непосредственно из ссылок, если, но это часто грязно, поскольку необходимо будет разрешить какие-либо зависимости сами через игру того, что я не имею? с CLI.
Если Вы склонны для переключения Вашего дерева пакета для сжатия, можно изменить Ваш /etc/apt/sources.list
соответствовать тому из дерева сжатия. Оттуда, Вы можете aptitude update
затем aptitude install python
и у Вас должно быть python3.1 и все его зависимости в буксировке.
Я записал в другом месте, что, если Вы главным образом интересуетесь устойчивостью, Сжать (должен был затем скоро быть объявлен стабильным), Ваш лучший выбор в данный момент. Более легкое решение состоит в том, чтобы сделать новую установку его (загрузите страницу).
Другая опция состоит в том, чтобы обновить. Если Вы выбираете эту опцию:
apt-get update && apt-get upgrade
.[отмечают] версия Python по умолчанию в Сжатии, 2.6 и планируется, чтобы быть сделанным 2.7 после выпуска.