VAR=$VAR1
упрощенная версия VAR=${VAR1}
. Существуют вещи, второе может сделать это, первое не может, например, сослаться на индекс массива (не портативный) или удалить (портативную POSIX) подстроку. Посмотрите Больше на разделе переменных Руководства Bash для Новичков и Расширения Параметра в спецификации POSIX.
Используя кавычки вокруг переменной как в rm -- "$VAR1"
или rm -- "${VAR}"
хорошая идея. Это делает содержание переменной атомарной единицей. Если значение переменной содержит пробелы (хорошо, символы в $IFS
специальная переменная, пробелы по умолчанию) или globbing символы и Вы не заключаете его в кавычки, затем каждое слово рассматривают для поколения имени файла (globbing), чье расширение делает как много аргументов тому, что Вы делаете.
$ find .
.
./*r*
./-rf
./another
./filename
./spaced filename
./another spaced filename
./another spaced filename/x
$ var='spaced filename'
# usually, 'spaced filename' would come from the output of some command and you weren't expecting it
$ rm $var
rm: cannot remove 'spaced': No such file or directory
# oops! I just ran 'rm spaced filename'
$ var='*r*'
$ rm $var
# expands to: 'rm' '-rf' '*r*' 'another spaced filename'
$ find .
.
./another
./spaced filename
./another spaced filename
$ var='another spaced filename'
$ rm -- "$var"
$ find .
.
./another
./spaced filename
На мобильности: Согласно разделу POSIX.1-2008 2.6.2, фигурные скобки являются дополнительными.
tree
в странице справочника говорится:
-d List directories only.
Так вывод tree -d YOUR_TARGET_FOLDER
похож:
├── appengine_admin
│ ├── media
│ │ ├── images
│ │ └── js
│ └── templates
├── common
├── conf
│ └── locale
│ ├── ar
│ │ └── LC_MESSAGES
│ ├── bg
│ │ └── LC_MESSAGES
│ ├── en
│ │ └── LC_MESSAGES
│ ├── es
│ │ └── LC_MESSAGES
│ ├── fi
│ │ └── LC_MESSAGES
│ ├── fr
│ │ └── LC_MESSAGES
│ ├── ja
│ │ └── LC_MESSAGES
│ ├── pt
│ │ └── LC_MESSAGES
│ ├── ro
│ │ └── LC_MESSAGES
│ ├── ru
│ │ └── LC_MESSAGES
│ ├── sq
│ │ └── LC_MESSAGES
│ ├── sv
│ │ └── LC_MESSAGES
│ ├── tl
│ │ └── LC_MESSAGES
│ ├── tr
│ │ └── LC_MESSAGES
│ └── zh
│ └── LC_MESSAGES
├── credit
├── geo
├── js
├── mapreduce
│ ├── lib
│ │ ├── blobstore
│ │ ├── files
│ │ ├── graphy
│ │ │ └── backends
│ │ ├── key_range
│ │ ├── pipeline
│ │ │ ├── simplejson
│ │ │ └── ui
│ │ │ └── images
│ │ └── simplejson
│ ├── operation
│ └── static
├── market
├── onlinedebug
├── static
│ ├── challenge
│ ├── codebase
│ │ └── imgs
│ ├── css
│ ├── for_sale_files
│ ├── images
│ ├── images.large
│ ├── images.small
│ ├── img
│ ├── jquery-1.js
│ ├── js
│ └── yui
│ ├── assets
Если Вы ищете просто простой список каталогов в этом каталоге, то Вы могли попробовать
find . -maxdepth 1 -type d
1
после maxdepth указывает, сколько уровней рекурсии Вы хотите. При поиске всех каталогов (независимо от глубины), то попробуйте
find . -type d
Для управления глубиной дерева используйте опцию -L
.
tree -d -L 2.
tree
, Я предполагаю, что OP говорит об этом небольшом приложении, не установленном по умолчанию в моей системе, но доступном для установки. – enzotib 01.10.2011, 18:20