С busybox date (, поддерживающим -D-опцию ), вы можете выполнить:
$ busybox date -D '%d%m%Y' -d '20042019' +'%Y/%b/%d'
2019/Apr/20
Или, если вам нужны полные названия месяцев:
$ busybox date -D '%d%m%Y' -d '20042019' +'%Y/%B/%d'
2019/April/20
Обратите внимание, что название месяца меняется при изменении языка/страны.
Следующая команда аналогична find.
, но добавляет завершающую косую черту для файлов типа каталог:
find. ! -type d -print -o -exec printf '%s/\n' {} \;
Идея состоит в том, чтобы указать, что каталоги и по-прежнему получают допустимые существующие пути в выходных данных.
Примечания:
Команда переносима.
Если вместо .
вы используете путь, оканчивающийся на /
(, а каталог существует ), то при обработке пути вместо {}
вместо {}
будет подставлена предоставленная строка find
. По сути, вы получаете строку, заканчивающуюся на //
. Это не проблема, если только вы не укажете корневой каталог /
и получите точно//
. Обходной путь — указать /.
вместо /
. Улучшение заключается в том, чтобы не добавлять косую черту, если она уже есть в конце :
find … \( ! -type d -o -path '*/' \) -print -o -exec printf '%s/\n' {} \;
где …
означает один или несколько (или ноль, если ваш find
может принимать )начальные пути. Тогда можно смело указывать /
.
Команда ls
имеет стандартную опцию -F
, которая добавляет /
после каталогов, *
после исполняемых файлов, @
после символических ссылок и |
после именованных каналов (и реализации могут добавлять к этому дополнительные символы; см. ваше ls
руководство ).
Звонить ls -F
по каждой найденной вещи:
find. -exec ls -1 -f -d -F {} +
Я добавил опцию-1
("тире -один" )для получения результатов в одном столбце, -f
для отключения сортировки результатов (вы получите порядок, который find
] находит пути в )и -d
для списка каталогов, а не их содержимого.
{} +
будет заменен пакетами найденных путей, столько, сколько ls
может быть вызвано одновременно.
Пример запуска:
$ find. -exec ls -1 -f -d -F {} +
./
./.bash_profile
./.zshrc
./.bashrc
./.yashrc
./dir1/
./dir1/file-1
./dir1/subdir/
./dir1/subdir/file-2
./dir2/
./dir2/file-1
./dir2/subdir/
./dir2/subdir/file-2
Пути, не заканчивающиеся каким-либо конкретным символом, являются обычными файлами.