Я получил его с помощью следующего:
ftp -inv <<EOF
open app.server.address
user username password
cd some/location
get filename
bye
EOF
ftp
-i
опция выключает интерактивный запрос и -n
отключает автовход в систему наряду с подсказками имени пользователя и пароля.
Так как вы хотите расшифровать с вывода, которые у вас есть, мы постараемся упростить вещи.
ls -ld
drwxr-xr-x 4 root root 4096 Nov 11 14:29 .
Теперь ls -ld
в каталоге дает мне выход, как указано выше. Теперь номер 4 - это то, на что вам нужно сосредоточиться. 4 соответствует:
.
; ..
. .. Записи в 2 подкататорах внутри каталога. Чтобы проверить это, если я просто выпущу LS
, я мог видеть, что у меня есть пара дополнительных каталогов. Итак, это дает представление о том, что мы могли бы расшифровать от вывода вашего дела.
drwxr-xr-x 2014 K-rock users 65536 20011-11-05 11:34
Внутри каталогов 2012 года в том, что вы получаете 2014 год на выходе.
относительно количества файлов, невозможно обнаружить его из вывода, который у вас есть.
Чтобы проверить, если моя теория верна, я сделал тестирование ниже.
ls -la | grep -E '[d]' #Display only directories
drwxr-xr-x 12 root root 4096 Nov 11 14:42 .
drwxr-xr-x 4 root root 4096 Nov 11 14:20 ..
drwxr-xr-x 3 root root 4096 Nov 11 14:45 hello1
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello2
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello3
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello4
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello5
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello6
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello7
drwxr-xr-x 2 root root 4096 Nov 11 14:42 hello8
drwxr-xr-x 2 root root 4096 Nov 11 14:21 hello-subdir
drwxr-xr-x 2 root root 4096 Nov 11 14:29 spaced hello
Теперь, я выдаю ls -ld
Команда и вывод, который я получаю, это,
ls -ld
drwxr-xr-x 12 root root 4096 Nov 11 14:42 .
. Это не учитывало файлы или подкаталоги, вложенные внутри подкаталогии папки. По сути, приведенная выше команда говорит, что у меня есть 10 каталогов в моей папке.
P.S. Это часто плохое представление о том, чтобы разбирать что-то из LS
, так как он не является надежным. Использовать Найти
с с
-MaxDepth
вместо этого, если у вас есть шанс использовать его.
Я не знаю, достаточно ли этого для ответа, но
grep -w "/opt/gnome"
удовлетворит вашу потребность.
echo '/sbin:/usr/sbin:/opt/gnome:/var/opt/gnome' | grep -w "/opt/gnome" -o
/opt/gnome
echo '/opt/gnome:/sbin:/usr/sbin:/var/opt/gnome' | grep -w "/opt/gnome" -o
/opt/gnome
, но
echo '/opt/gnome:/sbin:/usr/sbin:/var/opt/gnome' | grep "/opt/gnome" -o
/opt/gnome
/opt/gnome
-121--42399- Можно также использовать
эхо «$ PATH» | tr ': '\n' | grep -x «/opt/gnome »
, которое разделяет переменную path на отдельные строки (по одной на путь), поэтому grep -x
может искать точные результаты.
Это, конечно, имеет недостаток, заключающийся в необходимости дополнительного процесса для tr
. И она не будет работать, если имя папки в PATH
содержит символы новой строки.
Если вы можете использовать ls
, то я предполагаю, что вы также можете использовать функцию builtin bash
.
Использование чистого bash
для подсчета всех записей в текущем каталоге:
$ num_entries () ( # Define a function to:
> shopt -s nullglob # expand * to empty string if no files
> shopt -s dotglob # include .files in * expansion
> a=( * ) # create array containing all entries in current directory
> echo ${#a[@]} # display length of array (number of directory entries)
> )
$ num_entries # call function for current directory
467
$
Использование чистого bash
для подсчета всех подкаталогов в текущем каталоге:
$ num_dirs () (
> shopt -s nullglob
> shopt -s dotglob
> a=( */ ) # note the */ glob which selects only directories
> echo ${#a[@]}
> )
Я помещаю их в ()
тела функций, так что shopt
параметров настройки будет иметь эффект только внутри этой функции и не имеет других побочных эффектов.
Можно объединить пару подходов
Количество файлов в каталоге
ls -l | grep "^-". | wc -l
Пройдитесь по подкаталогам
найдите ./подкаталог -тип d
собрать в одну команду
найти ./подкаталог -тип d | xargs -I{} sh -c "ls -l" {} | grep -c '^-'"
В результате рекурсивного подсчета файлов в каталогах произойдет рекурсивное переустановка.
Конечно, есть несколько способов претендовать на результат или обогатить его.